女朋友的編程作業,適合零基礎的同學,
題目

思路
運算是簡單的數學豎式,計算并沒有困難,題目考察點在于python的格式化輸出,
python中的格式化輸出主要使用format方法,
實作代碼(固定長度)
print('請輸入兩個整數:') ## 輸出
a = int(input()) ## 輸入
b = int(input()) ## 輸入
while(1):
print('請輸入兩個整數的運算方式(+或-):') ## 輸出
y = input() ## 輸入
if y=='+':
c = a+b
else:
c = a-b
break
print('{:>10}'.format(a))#固定長度是10
print('{:<}'.format(y),'{:>8}'.format(b))
print('{:->11s}'.format(''))
print('{:>10}'.format(c))
format 用法
格式化字串的函式 str.format(),str是要出的字串,format函式可以將str中指定的{}部分替換成我們指定的內容,
基本使用示例如下(更多使用方式可參考菜鳥教程):
>>>"{} {}".format("hello", "world") # 不設定指定位置,按默認順序
'hello world'
本題中會用到format函式中的對齊功能:
{:>10d}表示 右對齊 (默認, 寬度為10,空格補齊)
其中
:后面接對齊格式
>表示右對齊
10表示對齊的長度
d表示十進制數字
相同長度的-補齊
{:->11s}中符號:后接-表示使用-填充(沒有接其他符號表示用空格補齊),s表示字串
(更多使用方式可參考菜鳥教程)
動態對齊長度
上述直接使用format函式格式化對齊的方式只能設定固定的對齊長度10,就是無論數字是幾位,最終都對齊為左邊開始向右數第十位,如果數字很大超過十位,則會報錯,如果開始就把對齊的固定長度設定很大則運算式很不美觀,
則需要修改對齊方式,使得對齊的長度隨著輸入數字的長度動態調整,
這里用到了python的另一種格式化方式%,
思路
對齊需要使用format中的動態補齊,上面格式化代碼'{:>10}'中10的部分只能是數字,不能加變數,所以考慮在格式化代碼中套用格式化功能,將'{:>10}'再次格式化用變數代替10,
動態長度實作代碼
print('請輸入兩個整數:') ## 輸出
a = int(input()) ## 輸入
b = int(input()) ## 輸入
while(1):
print('請輸入兩個整數的運算方式(+或-):') ## 輸出
y = input() ## 輸入
if y=='+':
c = a+b
else:
c = a-b
break
l=max(len(str(a)),len(str(b)))+5#l為我們指定的動態長度,這里是比最長輸入數字的長度長5個字符
print(('{:>%s}'%(l)).format(a))
print(y+('{:>%s}'%(l-1)).format(b))
print(('{:->%s}'%(l)).format(''))
print(('{:>%s}'%(l)).format(c))
套用%講解
%用法與format類似(這里也可以直接用format代替)
>>>"hello%s"%("world")
'hello world'
當l=10時,上方代碼中'{:>%s}'%(l)相當于'{:>10},這時再用format函式就與第一個代碼相同了
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/181545.html
標籤:其他
上一篇:Python函式初探
