为何Python的int()函数无法将输入的数字转换为整数?
问题分析与修正
你的代码存在两个关键问题:
- 类型转换未赋值:
int(start)仅执行了转换操作,但没有将转换后的整数重新赋值给start变量。Python中类型转换函数会返回新的对象,不会修改原变量,所以原start仍然是输入时的字符串类型。 - 未定义变量
num:代码中打印type(num),但num从未被定义,运行时会触发NameError。
修正方案一:在函数内部完成赋值
import datetime def random(start, stop): # 将转换后的整数重新赋值给start start = int(start) print(type(start)) print(type(stop)) # 定义num变量,可根据实际需求修改值 num = 10 print(type(num)) a = input("enter") b = input("enter") random(a, b)
修正方案二:在调用函数前转换输入类型
import datetime def random(start, stop): print(type(start)) print(type(stop)) num = 10 print(type(num)) # 先转换输入为整数,再传入函数 a = int(input("enter")) b = int(input("enter")) random(a, b)
注:如果代码没用到datetime模块,可直接删除import datetime语句。
内容的提问来源于stack exchange,提问作者Ahmed Asif
相关产品推荐
相关产品推荐

