wushengjun 发表于 2020-7-24 16:22:37

有一个问题,如何检测输入的是数字还是文本

部分代码

import random
shuzi=random.randint(1,10)
question=input("猜猜我心里在想什么数字呀:")
m=type(question)
if m==int:
    print(question)
else:
    print("请输入数字")

问题是输入的不管是数字还是字母,type(question)的值都是str
如何解决

谢谢大家
   

Hello. 发表于 2020-7-24 16:25:50

本帖最后由 Hello. 于 2020-7-24 16:30 编辑

input 永远是 str
这样改
question=int(input("猜猜我心里在想什么数字呀:"))
如果你要检测,给你点提示
s 为字符串

s.isalnum()所有字符都是数字或者字母,为真返回 True,否则返回 False。

s.isalpha()   所有字符都是字母,为真返回 True,否则返回 False。

s.isdigit()   所有字符都是数字,为真返回 True,否则返回 False。

s.islower()    所有字符都是小写,为真返回 True,否则返回 False。

s.isupper()   所有字符都是大写,为真返回 True,否则返回 False。

s.istitle()      所有单词都是首字母大写,为真返回 True,否则返回 False。

s.isspace()   所有字符都是空白字符,为真返回 True,否则返回 False。
         
例如:
>>> s = 'I LOVE FISHC'
>>> s.isupper()
>>> True

static/image/hrline/1.gif如果帮到你了,设置下最佳可好呀{:10_297:}

liuzhengyuan 发表于 2020-7-24 16:30:36

使用 .isdigit()

>>> a = "123"
>>> a.isdigit()
True
>>> b = "不是数字"
>>> b.isdigit()
False

sunrise085 发表于 2020-7-24 16:31:34

input的返回值是str,所以永远都是字符串。
不过若是要检查是否是纯数字字符串的话,可以用isdigit()来判断一下
question.isdigit()

Twilight6 发表于 2020-7-24 17:14:34




input 是接收用户输入,并返回字符串,所以你的type 永远都是字符串

你上到第五课甲鱼哥就会教了,用字符串方法 isdigit() ,可以判断字符串内是纯数字,还是非纯数字,当是纯数字的时候返回 True ,不是则返回 False

给你一个小模板:
user = input('请输入一个整数:')

while not user.isdigit() or not ( 10 >= int(user) > 0):

    user = input('抱歉!您输入的不是整数或输入的数字不在1~10范围内,请重新输入:')

print(user,'是整数字符串!')

所以你的部分代码可以这样改改:
import random
shuzi=random.randint(1,10)
question=input("猜猜我心里在想什么数字呀:")

while not question.isdigit():
    question = input('你输入的不是一个整数噢!请重新输入:')

guess = int(question)   
print(guess,'是个整数!')



均昊山 发表于 2020-7-24 19:29:33

Python3.x 中 input() 函数接受一个标准输入数据,返回为 string 类型。
raw_input() 将所有输入作为字符串看待,返回字符串类型。而 input() 在对待纯数字输入时具有自己的特性,它返回所输入的数字的类型( int, float )。
注意:input() 和 raw_input() 这两个函数均能接收 字符串 ,但 raw_input() 直接读取控制台的输入(任何类型的输入它都可以接收)。而对于 input() ,它希望能够读取一个合法的 python 表达式,即你输入字符串的时候必须使用引号将它括起来,否则它会引发一个 SyntaxError 。

除非对 input() 有特别需要,否则一般情况下我们都是推荐使用 raw_input() 来与用户交互。

注意:python3 里 input() 默认接收到的是 str 类型。


import random
shuzi=random.randint(1,10)
question=input("猜猜我心里在想什么数字呀:")

if question.isdigit():
    print(question)
else:
    print("请输入数字")
页: [1]
查看完整版本: 有一个问题,如何检测输入的是数字还是文本