为何调用float(hrs)后无法执行pay=hrs*rate?Python类型转换疑问
问题分析:字符串转float未生效导致乘法报错
嗨,我看你遇到的问题很典型——你确实调用了float(hrs),但没有把转换后的结果重新赋值给hrs变量,这就导致原来的hrs还是input()返回的字符串类型,自然没法和float类型的rate相乘啦。
问题根源
Python里的类型转换函数(比如float()、int())不会直接修改原变量,它们会返回一个新的转换后的值。你现在只是调用了这个函数,但没把新值存回hrs,所以hrs仍然是字符串,执行hrs*rate的时候就会触发'can't multiply sequence by non-int of type 'float''这个错误。
修正后的代码
第一种方式:单独完成转换并赋值
hrs = input("enter hours") rate = 2.0 # 把转换后的float值重新赋值给hrs,覆盖原来的字符串 hrs = float(hrs) pay = hrs * rate print(pay)
第二种更简洁的方式:在获取输入时直接转换
# 一步到位,把input返回的字符串直接转成float hrs = float(input("enter hours")) rate = 2.0 pay = hrs * rate print(pay)
这样修改后,hrs就变成了float类型,和rate相乘就可以正常计算薪资啦。
内容的提问来源于stack exchange,提问作者myfan
相关产品推荐
相关产品推荐

