我试图设置下面的代码,要求用户输入两个整数(num_sides & num_rolls)。如果用户没有输入任何一个输入的整数,那么代码应该打印“输入一个整数”语句。Python:如果...和...不按预期工作
我发现这个代码只测试num_sides,但不测试如果num_rolls是一个整数。这里发生了什么?
在此先感谢您的帮助!
def rolldice():
while True:
while True:
num_sides = input("Enter number of sides for die: ")
num_rolls = input("Enter number of rolls for die: ")
try:
if int(num_sides) != num_sides or int(num_rolls) != num_rolls:
break
break
except(ValueError):
print("Enter an integer")
True
多么奇怪的循环。对于初学者来说,'num_sides'被转换为'int',并与原始形式(一个字符串)进行比较,这将永远不会成为“真”。 – Makoto
为什么你在'if'之内和之外都有'break'?你认为自己的“真”是为了你自己吗? – user2357112
一些答案只是测试它们*是否可以被转换为int。你还试图检查数字是整数还是不重要?我的意思是,如果某人放入3.3,你是否希望它抛出一个异常(测试数字是一个*整数*)还是只投射到3(这是当前答案的作用)? – leekaiinthesky