- 输入1-127的ascii码并输出对应字符
>>> data=int(input("请输入数字:"))
请输入数字:99
>>> if 1<data<127:
... ch=chr(data)
... print(ch)
... else:
... print("请输入1-127之间的整数")
...
c
>>>
2.输入a,b,c,d4个整数,计算a+b-c*d的结果
>>> a=1
>>> b=2
>>> c=3
>>> d=4
>>> print(a+b-c*d)
-9
>>>
如果是通过输数字的代码是
#encoding=utf-8
import sys
a=input("请输入第一个数字a:")
b=input("请输入第二个数字b:")
c=input("请输入第三个数字c:")
d=input("请输入第四个数字d:")
if a and b and c and d:
result=eval(a)+eval(b)-eval(c)*eval(d)
else:
print("请输入数字")
sys.exit()
print("a+b-c*d的结果是",result)
这段代码用了eval()函数,这个函数可以直接把字符串类型的对象转换成整型,来看个例子:
>>> type(eval('-1'))
<class 'int'>
>>> type('-1')
<class 'str'>
>>> type(eval('-1'))
<class 'int'>
>>> eval('-1')
-1
如上面所说,我们只能判断是否输入了内容来避免输入空值带来的错误(a,b,c,d有值时为True,无值时为False),那么如果我们输入字符怎么办呢?我们可以通过字符串的内置函数isdigit()来判断输入的是否是数字,但是这个函数也有个弊端,那就是当我们输入负数时也会被判断为没有输入数字(大概是因为有负号),而本题的题意是允许输入负数的,那应该如何避免输入负数不算作数字呢?我们可以使用异常处理try的方法来避免,代码如下:
#encoding=utf-8
a=input("请输入第一个数字a:")
b=input("请输入第二个数字b:")
c=input("请输入第三个数字c:")
d=input("请输入第四个数字d:")
try:
a=int(a)
b=int(b)
c=int(c)
d=int(d)
result=a+b-c*d
print("a+b-c*d的结果是",result)
except (ValueError,TypeError):
print("请输入数字")
那么我们可以对第一道题进行完善,代码如下:
#encoding=utf-8
while True:
try:
number=input("请输入1~127的数字来查看相对应的ACSII码:")
number=int(number)
if 1<=number<=127:
ascii_number=chr(number)
else:
print("请输入1~127的正整数")
continue
break
except (TypeError,ValueError):
print("请输入1~127的正整数")
print("对应的ASCII码是:",ascii_number)