关于python判断输入的是否有值的问题

比如说如下ifchoice=='e':usertext=input('Pleaseentersometexttoencrypt:')num=int(input('Plea... 比如说如下
if choice == 'e':
usertext = input('Please enter some text to encrypt: ')
num = int(input('Please enter a num: '))
1.如果用户在第一个input那里没有输入任何东西而是直接回车键的话就会自动跳到下一个语句,怎么写才能反复询问第一个语句直到用户输入任何的值才会跳到下一个语句呢?
2.关于第二个语句,只有用户输入0-26的数字才会执行后续的语句,如果输入了数字以外的东西或者超出0-26的范围则会重新询问让用户输入,请问这个又该怎么写
展开
 我来答
GTA小鸡
高粉答主

2018-08-24 · 醉心答题,欢迎关注
知道大有可为答主
回答量:2.6万
采纳率:78%
帮助的人:1.3亿
展开全部
usertext, num = None, -1
while not usertext:
    usertext = input('Please enter some text to encrypt: ')
while not (0 <= num <= 26):
    try:
        num = int(input('Please enter a num: '))
    except ValueError:
        print('What you have entered is not an integer.')
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
萌家仓鼠
2018-08-24
知道答主
回答量:11
采纳率:0%
帮助的人:2.2万
展开全部
在接收raw_input方法后,判断接收到的字符串是否为数字

例如:

str = raw_input("please input the number:")

if str.isdigit():

为True表示输入的所有字符都是数字,否则,不是全部为数字

str为字符串 str.isalnum() 所有字符都是数字或者字母 str.isalpha() 所有字符都是字母 str.isdigit() 所有字符都是数字 str.islower() 所有字符都是小写 str.isupper() 所有字符都是大写 str.istitle() 所有单词都是首字母大写,像标题 str.isspace() 所有字符都是空白字符、\t、\n、\r

上述的主要是针对整型的数字,但是对于浮点数来说就不适用了,那么浮点数怎么判断呢,一直在纠结这个问题,为什么非要区分整型和浮点数呢,既然都是参与运算的,全部适用浮点数不是一样吗,在得到结果后,直接转换为int型不是一样吗,为什么非要纠结在前期去判断是否整型或者浮点数呢,有了这样的思路,下面就好做了,例如:

我们可以通过异常来判断,异常语法如下:

try: {statements} exception: {Exception Objects} {statements}

str = raw_input("please input the number:")

try: f = float(str) exception ValueError: print("输入的不是数字!")

==========================================================

还有一种纯粹判断是否为浮点数的方法,使用正则表达式:

1.#引用re正则模块

import re

float_number = str(input("Please input the number:"))

#调用正则

value = re.compile(r'^[-+]?[0-9]+\.[0-9]+$')

result = value.match(float_number)

if result:

print "Number is a float."

else:
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式