python的input输入内容类型

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()来转换下两个输入的字符串,如果都是浮点数,则输出计算结果,如果不是,则打印不是数字。

修改如下:

参考链接:


python如何判断一个字符串是浮点型数据? - 知乎 python 可以判断一个字符串是否是数字 用isdigit(), 但只限于0~9 ,那怎么判断字符串是否是浮点型数据… https://www.zhihu.com/question/29906744


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)
'''


img