判断是不是数字为什么会错,应该如何写,

来源: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回答

好帮手慕凡

2021-09-23

同学,你好!

1、同学说的是选择服务部分吗?因为输入选择的服务后直接使用int( )进行了转换,所以当输入不是数字时转换就会报错;

修改方法:可以输入后先进行判断fw是否为数字再使用int( )转换为数字,注意变量名。

https://img.mukewang.com/climg/614bf35a090b39e708770362.jpg

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

https://img.mukewang.com/climg/614bf38809eb969f08980268.jpg

同学一定要认真阅读作业要求一步一步分步去完成,祝学习愉快~

0

0 学习 · 2433 问题

查看课程