【发布时间】:2015-06-29 10:11:37
【问题描述】:
问题:编写一个程序,要求用户输入一个介于 0 和 1000 之间(包括端点 0 和 1000)的数字。如果他们输入的数字超出范围,则打印一条消息,指出该数字超出范围,并再次提示他们输入 0 到 1000 之间的数字,包括 0 到 1000。当用户在范围内输入数字时,将数字打印到屏幕上并结束程序。
我已经编写了程序,但我不确定我正确使用了while 语句。请检查我的程序并提供反馈。
我的问题:如果我输入了两次负数,则不是第三次要求输入数字。请帮忙!!
这是我的程序:
from turtle import*
def ask():
m = eval(input("Enter a number between 0 and 1000, inclusive: "))
return m
def inclusive(i):
i = -1
while i < 0 or i > 1000:
print("Out of range, my boy. Try again!")
i = ask()
return i
def main():
n = ask()
m = inclusive(m)
win = Screen()
win.bgcolor("black")
ahamed = Turtle()
ahamed.pencolor("blue")
ahamed.write(m,font=["Arial",90])
ahamed.hideturtle()
exitonclick()
main()
我的问题:如果我输入两次负数,它不是第三次询问数字。请帮忙!!
【问题讨论】:
-
不要不使用
eval(input(...),使用int(input(...)) -
我输入的是数字,而不是字符串
-
是的,我知道,最好使用 int 或 input 而不是 eval
-
好的@@@@@@@@@@@@2
-
错误 - 您实际上是在输入一个字符串。如果您使用
eval将输入的字符串转换为整数,则用户可以执行代码,如exit()以退出程序,或其他可能危险的东西。int()只是试图把它变成一个整数。
标签: python format turtle-graphics