python中input函数的返回是哪种类型_Python3.x中input的变化:input函数默认返回字符串类型...
背景:學習《Python基礎教程第2版》,第10.3章 標準庫:一些最愛 時,
運行如下例子:
用戶選擇投擲的骰子數以及每個骰子具有的面數,隨機返回骰子的點數,代碼如下:
from random import randrange
num = input('How many dice? ')
sides = input('How many sides per die? ')
sum = 0
for i in range(num):sum += randrange(sides) + 1
print( 'The result is ',sum)
運行之后報如下錯誤:
=================== RESTART: D:/Python/my_program/dice.py ===================
How many dice? 3
How many sides per die? 6
Traceback (most recent call last):
File "D:/Python/my_program/dice.py", line 21, in for i in range(num):sum += randrange(sides) + 1
TypeError: 'str' object cannot be interpreted as an integer
分析錯誤提示是說不能把str類型的對象當成int類型用
for語句中用到了num,sum,sides三個變量,分析發現sum肯定是int型,而num和sides都是input傳入的,那問題肯定出在input函數上,于是通過編碼驗證:
>>> a = input ('How many dice?')
How many dice?3
>>> a
'3'? ? ?------ 由此可見,input輸入的是字符串類型的值
查找資料發現:
python3.x版本中,舍棄了raw_input函數,只保留了input( )函數,其接收任意輸入,將所有輸入默認為字符串處理,并返回字符串類型
因此,上述代碼要運行成功,需修改如下:
from random import randrange
num = int(input('How many dice? '))? ?---- 強制轉換成想要的類型
sides = int(input('How many sides per die? '))
sum = 0
for i in range(num):sum += randrange(sides) + 1
print( 'The result is ',sum)
再次運行通過:
=================== RESTART: D:/Python/my_program/dice.py ===================
How many dice? 5
How many sides per die? 6
The result is ?15
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的python中input函数的返回是哪种类型_Python3.x中input的变化:input函数默认返回字符串类型...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c++ vscode 自动注释_WIN下
- 下一篇: java web输出语句到控制台_Jav