python 的while 怎么用

choose = input("xxxx")
if choose == "1":
    flag = 1
    flag_range ="flag<10"

elif choose == "2":
    flag = 31
    flag_range ="flag>30 and flag<40"

elif choose == "3":
    flag = 51
    flag_range ="flag > 50 and flag < 60"

#print(flag_range)
while flag_range:
    print(flag)
    flag +=1

这样写会不停一直循环,怎么写能让条件是一个字符串变量, 这里flag_range并不能用

阅读 2.7k
2 个回答

while 的判断条件是语句,你提供判断条件的是字符串 "flag<10",因为不是空字符串 "" ,所以条件的值一直是 True,进入死循环。
可修改逻辑如下:

choose = int(input("Type: "))
if choose == 1:
    flag = 1
else:
    flag = ((choose - 1) * 20 - 10) + 1

floor = flag - 1
limit = flag + 10 - 1

while flag > floor and flag < limit:
    print(flag)
    flag += 1

效果如下:
006tKfTcly1fl9mdh3bc3j305w07a749.jpg

你判断是字符串,也可以用eval转换一下:while eval(flag_range): pass

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题