Python代码偶发报错、无输出问题,求助排查错误原因
错误原因定位
- 随机数取值范围逻辑错误:
random.randint(a,b)生成的结果包含a和b两个边界值,你设置的上限为number_of_members,但names列表的合法索引范围是0 到 number_of_members - 1,当随机数等于number_of_members时,如果命中你写的分支就会触发列表索引越界报错。 - 分支判断覆盖不全:你只写了随机数为0到4的输出逻辑,一旦随机数大于等于5,所有分支都不匹配,就会出现无报错也无输出的情况。
- 分隔符和输入格式不匹配:你输入的名字格式是
名字 空格 逗号 空格(比如jay , mack),代码用,拆分后得到的名字会附带多余的尾空格,不符合预期。
修复后代码
names_string = input("Give me everybody's names, separated by a comma.\n") # 拆分后逐个清除名字前后多余空格,兼容输入时的空格格式问题 names = [name.strip() for name in names_string.split(",")] number_of_members = len(names) import random # 随机数上限调整为number_of_members - 1,避免越界 randominteger = random.randint(0, number_of_members - 1) # 直接用随机索引取值,不需要写多分支判断 print(f"{names[randominteger]} is going to buy the meal today!")
内容的提问来源于stack exchange,提问作者Caffeine
相关产品推荐
相关产品推荐

