python3写一个计算器_Python3 写了一个简单的模拟计算器 总是报错 有知道的大神 帮忙解答下 非常感谢...
先上代碼復(fù)制粘貼就可以運(yùn)行了```#_*_coding:utf-8_*_importsysdefadd():returnnum1+num2defsubtract():returnnum1-num2defmultiply():returnnum1*num2defdivide():returnnum1/num2pr...
先上代碼 復(fù)制粘貼就可以運(yùn)行了
```
#_*_coding:utf-8_*_
import sys
def add():
return num1 + num2
def subtract():
return num1 - num2
def multiply():
return num1 * num2
def divide():
return num1 / num2
print('選擇運(yùn)算')
print('1.相加')
print('2.相減')
print('3.相乘')
print('4.相除')
def validInput(info):
vchoice = input(info)
if vchoice == 'exit':
sys.exit(0)
elif not vchoice:
print('非法輸入')
validInput(info)
elif not vchoice.isdigit():
print('請(qǐng)輸入數(shù)字')
validInput(info)
elif vchoice is None:
print('vchoice is None')
validInput(info)
else:
return vchoice
while True:
choice = validInput('請(qǐng)輸入要選擇的運(yùn)算(1/2/3/4): ')
vnum1 = validInput('請(qǐng)輸入第一個(gè)數(shù)字: ')
vnum2 = validInput('請(qǐng)輸入第二個(gè)數(shù)字: ')
print('type vnum1:%s'%type(vnum1))
print('type vnum2:%s %s'%(type(vnum2),vnum2))
if type(vnum1) == int:
num1 = vnum1
else:
num1 = int(vnum1)
if type(vnum2) == int:
num2 = vnum2
else:
num2 = int(vnum2)
if choice == '1':
print('%s + %s = %s'%(num1,num2,add()))
elif choice == '2':
print('%s - %s = %s' % (num1, num2, subtract()))
elif choice == '3':
print('%s * %s = %s' % (num1, num2, multiply()))
elif choice == '4':
print('%s / %s = %s' % (num1, num2, divide()))
else:
print('非法輸入')
```
出現(xiàn)報(bào)錯(cuò)信息為:
Traceback (most recent call last):
File "D:/SpaceX_PY/HelloPython/Tkinter&Python/MyCalculator2.py", line 45, in
num1 = int(vnum1)
TypeError: int() argument must be a string, a bytes-like object or a number, not 'NoneType'
復(fù)現(xiàn)bug步驟:
1.正常輸入,不會(huì)報(bào)錯(cuò) 依次輸入1-->2-->1
2.異常輸入,報(bào)錯(cuò) 依次輸入 1-->2-->e-->2 報(bào)錯(cuò)
感謝各位大神解答, 最好將正確的代碼貼在評(píng)論上 謝謝!
展開(kāi)
總結(jié)
以上是生活随笔為你收集整理的python3写一个计算器_Python3 写了一个简单的模拟计算器 总是报错 有知道的大神 帮忙解答下 非常感谢...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python数据分析第三方库是_pyth
- 下一篇: python3 链表_python3实现