使用for循环与if语句时,年龄大于12的票价出现重复打印问题排查
问题分析与解决
你的代码里多余的for循环是导致重复打印的核心原因:
input()返回的是字符串类型,比如输入13时,age的值是"13"- 当你写
for ages in age时,会遍历这个字符串的每个字符,也就是循环2次(分别对应字符"1"和"3") - 每次循环里你又把整个
age转成整数13,所以每次都会触发ages>12的条件,自然会重复打印两次票价
修正后的代码
直接删掉多余的for循环,同时用elif/else优化逻辑(避免冗余判断):
age = input("Enter your age to get ticket prices: ") ages = int(age) if ages < 3: print("Your ticket is free!") elif 3 <= ages <= 12: print("Your ticket is $10") else: print("Your ticket is $15")
这样无论输入什么年龄,都会只执行一次判断逻辑,只打印一次对应票价。
内容的提问来源于stack exchange,提问作者Rylan-Ferrer
相关产品推荐
相关产品推荐

