input输入
这个程序我想输入两个数字计算它们的相除的结果。
我要进行两个测试:
1.输入文本类型的内容,打印出“我的输入不是数字。”
2.输入数字类型的内容,计算出结果
现在的问题是,使用input让我输入内容时,内容只能是文本类型,无法是数字类型,我应该怎样做才能输入真正的数字呢?
first_number = input("Please enter first_number:")
second_number = input("Please enter second_number:")
try:
result = first_number/second_number
except TypeError:
print("Your input are not a numbers.")
else:
print(result)
因为使用input()获取到的输入都是文本类型的字符串,所以相除肯定是抛异常,然后打印不是数字;
如果只需要计算两个整数相除,可以使用isdigit()先判断输入的字符串是不是数字,如果都是数字,则计算打印相除的结果,否则打印输入的不是数字。
如果需要计算两个浮点数相除,可以可以float()来转换下两个输入的字符串,如果都是浮点数,则输出计算结果,如果不是,则打印不是数字。
修改如下:
参考链接:
first_number = input("Please enter first_number:")
second_number = input("Please enter second_number:")
# 如果只需要计算两个整数的相除,可以使用这个
# https://www.zhihu.com/question/29906744
# 可以使用float()转换下输入的字符串,如果都可以转换,则计算相除的结果
if first_number.isdigit() and second_number.isdigit():
result = int(first_number)/int(second_number)
print(result)
else: # 如果有一个或两个不是数字,则输出对应的提示
print("Your input are not a numbers.")
'''
# 如果需要计算包括浮点数的相除结果,可以使用这个代码
# https://www.zhihu.com/question/29906744
# 可以使用float()转换下输入的字符串,如果都可以转换,则计算相除的结果
try:
a=float(first_number)
b=float(second_number)
result = a/b
except TypeError: # 如果有一个或两个不能转换,则打印不是数字
print("Your input are not a numbers.")
# https://zhuanlan.zhihu.com/p/360807803
else: # 如果都转换成功,则输出相除的结果
print(result)
'''