天天看點

python筆記:range()的資料類型 & Center()和format()搭配的效果Range()函數的資料類型

Range()函數的資料類型

運作這個代碼,range()函數這裡出錯

a = input()
b = (int(a)+1)/2

for i in range(b):
    c='*'*(1+2*i)
    i +=1
    print('{}'.format(c).center(int(a)))
           

分析:range()函數隻有一個參數的情況下,必須使用int、即整數類型。

  • eval()函數的話,可以将str轉為int,是以range()可以運作;
  • int()得到的是int,經過運算後資料類型變為float,是以range()不能運作。

驗證如下:

>>> a = input()       # 随便輸入一個整數
>>> b = (int(a)+1)/2
>>> d = int(b)
>>> 
>>> print(type(a))
>>> print(type(b))
>>> print(type(d))

<class 'str'>
<class 'float'>
<class 'int'>
>>> 
           

正确的應該是把 range()修改為:

a = input()
b = (int(a)+1)/2

for i in range(int(b)):
           
  • 但是不知道怎麼使用“^”來替換format裡的center()的結果居中排列,
  • 待大神指教。