判断是不是数字为什么会错,应该如何写,
来源:5-5 项目作业
刘一
2021-09-23 10:02:57
# coding:utf_8
xuanxian={
1:"人民币转换美元",
2:'美元转换人民币',
3:'人民币转欧元',
0:'程序结束'
}
your_Choice={
1:{'name':"人民币",'key':7.06},
2:{'name':"美元",'key':1/7.06},
3:{'name':'欧元','key':1/0.12}
}
while True: #循环执行
while True:
for i in range(20): # 打印开头
print('*', end='')
if i == 10:
print('欢迎使用货币转换服务系统', end='')
print('')
for k, i in xuanxian.items(): # 打印选择
print('{}.{}'.format(k, i))
fw=int(input('请输入您选择需要的服务:'))
print('_________________')
keys = list(xuanxian.keys())
if fw in keys:
if fw==0:
break
print('欢迎使用{}服务'.format(xuanxian[fw]))
money=input('请您输入需要转换的{}:'.format(your_Choice[fw]["name"]))
while money.isdigit()!=True: #判断是否是数字
print('输入错误请输入数字')
continue
print('您需要转换的{}为:{}'.format(your_Choice[fw]['name'],money))
print("兑换成{}为{:.2f}".format(your_Choice[fw]['name'],float(money)*float(your_Choice[fw]['key'])))
print('=============')
continue
else:
print("您输入有误重新输入")
continue
print('程序结束感谢使用')
break
1回答
同学,你好!
1、同学说的是选择服务部分吗?因为输入选择的服务后直接使用int( )进行了转换,所以当输入不是数字时转换就会报错;
修改方法:可以输入后先进行判断fw是否为数字再使用int( )转换为数字,注意变量名。

2、continue可以跳过最近一层的当次循环进入下次循环,这里使用while会导致死循环,可以用if进行判断。

同学一定要认真阅读作业要求一步一步分步去完成,祝学习愉快~
相似问题
回答 1