導航:首頁 > 編程語言 > python輸出數的位數

python輸出數的位數

發布時間:2022-11-26 21:24:32

1. 求用python輸入一個三位自然數,計算並輸出其百位、十位和個位上的數字的代碼(兩種方法)

#方法一:
print('百位:{},十位:{},個位:{}'.format(*input('請輸入一個三位數:')))

#方法二:
i=int(input('請輸入一個三位數:'))
t=(i//100,i//10%10,i%10)
print('百位:{},十位:{},個位:{}'.format(*t))

2. 用python編程實現:輸入任意正整數,輸出它是幾位數。代碼和運行效果截圖

inp = input()
if inp.isdigit():
print(len(inp),'位數')
else:
print('輸入的不是正整數')


運行結果

3. python 如何控制輸出的小數長度

Python裡面小數點長度精度控制方法:

一、要求較小的精度

將精度高的浮點數轉換成精度低的浮點數。

1.round()內置方法

這個是使用最多的,剛看了round()的使用解釋,也不是很容易懂。round()不是簡單的四捨五入的處理方式。

For the built-in types supporting round(), values are rounded to the
closest multiple of 10 to the power minus ndigits; if two multiples are equally
close, rounding is done toward the even choice (so, for example, both round(0.5)
and round(-0.5) are 0, and round(1.5) is 2).

>>> round(2.5)

2

>>> round(1.5)

2

>>> round(2.675)

3

>>> round(2.675, 2)

2.67

round()如果只有一個數作為參數,不指定位數的時候,返回的是一個整數,而且是最靠近的整數(這點上類似四捨五入)。但是當出現.5的時候,兩邊的距離都一樣,round()取靠近的偶數,這就是為什麼round(2.5)
=
2。當指定取捨的小數點位數的時候,一般情況也是使用四捨五入的規則,但是碰到.5的這樣情況,如果要取捨的位數前的小樹是奇數,則直接舍棄,如果偶數這向上取捨。看下面的示例:

>>> round(2.635, 2)

2.63

>>> round(2.645, 2)

2.65

>>> round(2.655, 2)

2.65

>>> round(2.665, 2)

2.67

>>> round(2.675, 2)

2.67

2. 使用格式化

效果和round()是一樣的。

>>> a = ("%.2f" % 2.635)

>>> a

'2.63'

>>> a = ("%.2f" % 2.645)

>>> a

'2.65'

>>> a = int(2.5)

>>> a

2

二、要求超過17位的精度分析

python默認的是17位小數的精度,但是這里有一個問題,就是當我們的計算需要使用更高的精度(超過17位小數)的時候該怎麼做呢?

1. 使用格式化(不推薦)

>>> a = "%.30f" % (1/3)

>>> a

'0.'

可以顯示,但是不準確,後面的數字往往沒有意義。

2. 高精度使用decimal模塊,配合getcontext

>>> from decimal import *

>>> print(getcontext())

Context(prec=28, rounding=ROUND_HALF_EVEN, Emin=-999999, Emax=999999,
capitals=1, clamp=0, flags=[], traps=[InvalidOperation, DivisionByZero,
Overflow])

>>> getcontext().prec = 50

>>> b = Decimal(1)/Decimal(3)

>>> b

Decimal('0.')

>>> c = Decimal(1)/Decimal(17)

>>> c

Decimal('0.')

>>> float(c)

0.058823529411764705

默認的context的精度是28位,可以設置為50位甚至更高,都可以。這樣在分析復雜的浮點數的時候,可以有更高的自己可以控制的精度。其實可以留意下context裡面的這rounding=ROUND_HALF_EVEN
參數。ROUND_HALF_EVEN, 當half的時候,靠近even.

三、關於小數和取整

既然說到小數,就必然要說到整數。一般取整會用到這些函數:

1. round()

這個不說了,前面已經講過了。一定要注意它不是簡單的四捨五入,而是ROUND_HALF_EVEN的策略。

2. math模塊的ceil(x)

取大於或者等於x的最小整數。

3. math模塊的floor(x)

去小於或者等於x的最大整數。

>>> from math import ceil, floor

>>> round(2.5)

2

>>> ceil(2.5)

3

>>> floor(2.5)

2

>>> round(2.3)

2

>>> ceil(2.3)

3

>>> floor(2.3)

2

>>>

4. 利用Python編寫程序,輸入一個三位數,分離出各位數上的數字並輸出

前面跟大家分享過佔位符%,最近發現了個更好用的格式化輸出函數format,故做了個總結,下面將是對format函數的用法全解。

首先,format是一個字元串中的函數 表達式為 str.format(),採用了 {} 來代替佔位符 %

format(value, format_spec='', /)

這個為調用格式 value 表示格式化輸入的值(參數),可以接受不限個參數

format函數的位置參數用法 「{0}」.format(value)

"The dog is {} years old,name {}".format(1,"DaiMo")#大括弧里沒有設置位置參數

結果為:'The dog is 1 years old,name DaiMo'

這是默認位置參數狀態下的輸出結果,第一個{}對應format函數的第一個參數,

第二個{}對應著第二個參數,以此類推,一一對應。

"The dog is {0} years old,name {1}".format(1,"DaiMo")

結果為:'The dog is 1 years old,name DaiMo'

"The dog is {1} years old,name {0}".format(1,"DaiMo")

結果為:'The dog is DaiMo years old,name 1'

通過位置的改變來讓替換的值根據位置改變

format函數的字元填充用法 「{:}」.format()

說到這一點,可能稍微有點復雜,為了方便理解,在引入format函數的調用格式

'''

{ index : [ [fill] align] [sign] [+] [width] [.precision] [type] ] }

index 為位置參數,從0,1,……,開始

fill:指定空白處填充的字元,當填充字元為逗號(,)且作用於整數或浮點數時,

該整數(或浮點數)會以逗號分隔的形式輸出(千分位輸出),例如(1000000會輸出 1,000,000)

align:指定數據的對齊方式(、^ 分別為左對齊、右對齊、居中,= 看下圖)

sign:指定有無符號數(+、-、、空格)

width:指定輸出數據時所佔的寬度。

precision:指定保留的小數位數。

type:指定輸出數據的具體類型

'''

哈?還看不懂嗎?那我以例子為基礎講細一點

print("The dog is {0:0>2} years old,name {1}".format(1,"DaiMo"))

The dog is 01 years old,name DaiMo

大括弧中第一個0表示位置參數,第二個0是在設定的字元長度下,空白處以0來填充。> 表示右對齊,2 表示字元長度為2.

5. python輸出怎麼保留兩位小數

python輸出保留兩位小數的四種方法:
a = 5.5461
方法一:round(a,2)
方法二:float('%.2f' % a)
相關推薦:《Python視頻教程》
方法三:『%.2』 %a
方法四:
from decimal import Decimal
Decimal('5.026').quantize(Decimal('0.00'))
當需要輸出的結果要求有兩位小數的時候,字元串形式的:'%.2f' % a 方式最好,其次用Decimal。
需要注意的:
1. 可以傳遞給Decimal整型或者字元串參數,但不能是浮點數據,因為浮點數據本身就不準確。
2. Decimal還可以用來限定數據的總位數。以上就是小編分享的關於python輸出怎麼保留兩位小數的詳細內容希望對大家有所幫助,更多有關python教程請關注環球青藤其它相關文章!

6. 關於python的整數輸出格式的問題:1輸出為001, 11輸出為011,就是都以三位數的形式輸出

#!/usr/bin/python

for i inrange(1,20):

n=str(i)

s = n.zfill(3)

print s

或者:

for i in range(1,20):

m = "%03d" % i

print m

(6)python輸出數的位數擴展閱讀:

Python格式化輸出

一、整數的輸出

1、%o —— oct 八進制

2、%d —— dec 十進制

3、%x —— hex 十六進制

print('%o' % 20)

24

print('%d' % 20)

20

print('%x' % 20)

14

二、浮點數輸出

1、格式化輸出

%f ——保留小數點後面六位有效數字

%.3f,保留3位小數位

%e ——保留小數點後面六位有效數字,指數形式輸出

%.3e,保留3位小數位,使用科學計數法

%g ——在保證六位有效數字的前提下,使用小數方式,否則使用科學計數法

%.3g,保留3位有效數字,使用小數或科學計數法

2、字元串輸出

%s

%10s——右對齊,佔位符10位

%-10s——左對齊,佔位符10位

%.2s——截取2位字元串

%10.2s——10位佔位符,截取兩位字元串

參考資料來源:Python-網路

7. 輸入一個8位整數,輸出中間4位怎麼寫用python來寫

解答如下#! usr/bin/python3.5# -*- coding:utf-8 -*-a = input("請輸入一個整數:")#python中input函數輸出的是一個字元串,而只有通過int進行強制轉換a = int(a)b = input("請輸入一個整數:")b = int(b)"""divmod()函數用法def divmod(x, y): # known case of builtins.divmod""" Return the tuple (x//y, x%y). Invariant: div*y + mod == x. """return (0, 0)函數返回的是兩個值,第一個是一個x//y的整數,而x%y是一個求余"""n, r = divmod(a, b)if __name__ =='__main__':print("n=", n, "r=", r)補充知識:python輸入一個三位數以上的整數,輸出其百位以上的數字(同每個位置上的數字)例如用戶輸入1234,則程序輸出12x=input('請輸入一個三位以上的數')x=int(x)if 0print('請重新輸入一個三位以上的數')else:x=x//100print(x)這個題目用到的是整除運算的思想。同樣的 我們可以舉一反三:x=x//10x=x//1000那麼如果我們想將各個位置上的數字提取出來那就更簡單了,連續組合整除運算就OK啦!x=x//10//10

8. Python:format函數控制輸出的小數點位數

說明:format函數就是一種" 特殊的佔位符 "!但輸出多個數據時,用format佔位符比直接用字元串中的佔位符要方便一些。

用format函數控制輸出的小數點位數(滿足4舍5入):

補充:format的4舍5入功能,和round(a, num)實現功能是一樣的!
參數說明:a是待判斷的數(只能是一個數,不能是列表或其他容器類型);num是保留位數。

9. 如何用Python編程輸入一個多位整數,從高位到低位依次輸出該整數每個數位上的

依次輸出,那就是一個一個輸出,那麼用for循環遍歷字元串最方便。

輸出格式是一行,每個數字間用空格隔開,如果你是一行輸出一個數字,輸出換成print(i)。

閱讀全文

與python輸出數的位數相關的資料

熱點內容
搜索pdf內容 瀏覽:497
程序員裝機必備的軟體 瀏覽:9
php微信第三方登錄demo 瀏覽:536
上海php工具開發源碼交付 瀏覽:791
哪裡有求購黃頁的源碼 瀏覽:194
商城礦機源碼礦場系統 瀏覽:198
單片機的led燈熄滅程序 瀏覽:224
洛陽python培訓 瀏覽:702
小鍵盤命令 瀏覽:194
單片機c語言返回主程序 瀏覽:816
dockerpythonweb 瀏覽:970
程序員演算法有多強 瀏覽:717
pythonworkbook模塊 瀏覽:245
什麼app能查醫生 瀏覽:175
輕量級的編程語言 瀏覽:340
程序員那麼可愛生孩子 瀏覽:432
後綴him3加密文件是什麼軟體 瀏覽:986
堅果隱藏app為什麼要140版本才能用 瀏覽:315
淘寶dns伺服器地址 瀏覽:259
領英轉型app哪個好用 瀏覽:943