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
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位佔位符,截取兩位字元串
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)。