为什么在使用bob和(例如5)时,我的while循环是无限的? python的新手,所以如果这是一个太基本的问题。
from splashkit import *
def read_string (prompt):
write_line(prompt)
result = read_line()
return result
def read_interger (prompt):
line = read_string(prompt)
while not line.isdigit():
print("Please enter a whole number")
line = read_string(prompt)
return int(line)
name = read_string("Enter your name: ")
age = read_interger("Enter your age: ")
print("Hello", name)
print("Aged: ", age)
答案 0 :(得分:1)
一个疯狂的猜测……(read_line()
的文档并未对函数的作用做太多说明。
问题在于,读取的行还包含换行符'\n'
,因此.isdigit()
将始终为false,因为如文档所述,字符串不能为空且所有字符字符串中的数字必须是数字。
您可以更改result = read_line().strip()
的输入来解决此问题,因为它将删除结尾的换行符。