为何这段Python代码无法正确获取变量的值?
问题分析:random.randrange调用失败的原因
嘿,我来帮你排查这个问题!先看看你写的代码:
import random x = input("minim radom range:") z = input("maxrange") print(random.randrange(x, z))
你说代码“无法获取变量x和z的值”其实不太准确——实际上x和z已经拿到值了,但类型不对!
input()函数不管用户输入的是什么内容,都会返回一个字符串(str)类型的值- 而
random.randrange()函数要求传入的参数必须是整数(int)类型,它没办法直接处理字符串参数
所以当你直接把x和z传给randrange时,Python会抛出类型错误,看起来像是“没获取到值”,但本质是参数类型不匹配导致函数无法正常执行。
修正方法
把输入的字符串转成整数就可以解决问题,修改后的代码如下:
import random x = int(input("minim radom range:")) z = int(input("maxrange")) print(random.randrange(x, z))
额外小提醒:如果用户输入的不是数字(比如字母、符号),上面的代码还是会报错。要是想让程序更健壮,可以加个输入验证逻辑,但这属于进阶优化啦~
内容的提问来源于stack exchange,提问作者rafax
相关产品推荐
相关产品推荐

