Python单位转换失败求解

千克和斤单位转换
以下为我的代码
斤能转成千克,
但是千克转换斤会报错,
比如输入1.7千克会报“1.7千”,不知道算是哪里出现了问题

str1 = input('请输入一个重量:')
if str1[-2:] in ['kg']:
A = eval(str1[0:-1])*2
print('转换后的重量是{:.2f}斤'.format(A))
elif str1[-1] in ["斤"]:
B = eval(str1[0:-1])/2print('转换后的重量是{:.2f}千克'.forma(B))
else:print('输入格式错误')

str1 = input('请输入一个重量:')
if str1[-2:] in ['kg']:
    A = eval(str1[0:-2])*2
    print('转换后的重量是{:.2f}斤'.format(A))
elif str1[-1] in ["斤"]:
    B = eval(str1[0:-1])/2
    print('转换后的重量是{:.2f}千克'.format(B))
else:
    print('输入格式错误')

问题点:主要问题出在判断条件没有涵盖所有的情况.
思路分析:在输入重量时,重量单位有多种,还要考虑中文和英文的情况.
解决办法:支持多种单位的判断.

常见的重量单位有:
克(g):国际系统中最常用的重量单位之一,1克等于1千分之一千克。
千克(kg):国际系统中基本的重量单位,1千克等于1000克。
吨(t):常用于大型物体或货物的重量表示,1吨等于1000千克。
盎司(oz):常用于液体和食品的重量表示,1盎司约等于28.35克。
磅(lb):常用于英制系统中的重量单位,1磅约等于0.454千克。
克拉(ct):用于宝石的重量表示,1克拉等于0.2克。

引用 皆我百晓生 小程序回复内容作答:
您的代码有一些小问题,以下是修改后的代码:

str1 = input('请输入一个重量:')
if str1[-2:] in ['kg']:
    A = eval(str1[0:-2])*2
    print('转换后的重量是{:.2f}斤'.format(A))
elif str1[-1] in ["斤"]:
    B = eval(str1[0:-1])/2
    print('转换后的重量是{:.2f}千克'.format(B))
else:
    print('输入格式错误')

您在if条件判断语句中将str1的最后两个字符与['kg']进行比较,应该改为与'kg'进行比较。另外,斤的单位应该是'斤'而不是"斤"。在计算B时,除以2的操作应该在eval(str1[0:-1])的外面进行。

希望对您有帮助!

【以下回答由 GPT 生成】

问题出现在对输入字符串的切片操作上,导致转换后的字符串中包含了单位。你可以对切片操作进行调整,确保只获取数值部分,然后进行单位转换。以下是修改后的代码:

str1 = input('请输入一个重量:')
if str1[-2:] in ['kg']:
    A = eval(str1[0:-2])*2
    print('转换后的重量是{:.2f}斤'.format(A))
elif str1[-1] in ["斤"]:
    B = eval(str1[0:-1])/2
    print('转换后的重量是{:.2f}千克'.format(B))
else:
    print('输入格式错误')

修改后的代码会正确地进行单位转换,不再报错。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^