各位大虾, 刚学python 3.:写了写 name=input('name :') if name=='2...

发布网友 发布时间:2024-10-23 21:57

我来回答

3个回答

热心网友 时间:2024-10-25 14:15

我把你的换行写没有问题:

name = raw_input('name: ')
if name == '2':
    print 'Hello'
>>> 
name: 2
Hello


原因:

如果将if/else写在一行,就是python的三目运算。语法格式为:do-something if statement else do-another, 例如:

Python 2.7.4 (default, Apr 19 2013, 18:32:33) 
[GCC 4.7.3] on linux2
Type "copyright", "credits" or "license()" for more information.
>>> print 'I am true' if True else 'I am false'
I am true
>>> print 'I am true' if False else 'I am false'
I am false
>>>

也就是说,在这种语法格式下,python先回去执行if语句。

而在你的if语句中所引用的

if name=='2'

中的name是需要通过if语句之前的语句来赋值的 (name=input('name :'))。

所以如果先执行if语句时,name还未被赋值,则会报错。

我认为楼主是误将python的三目运算当成了简单的if/else来执行。

所以分开写就是对的。

热心网友 时间:2024-10-25 14:13

分两行写
name=input('name :')
if name=='2' : print('hello')

name=input('name :'); print('hello') if name=='2' else None

热心网友 时间:2024-10-25 14:15

格的可能,而且认为小数点就是代表小数点。而且数字可以由正负号。
#比如你获取的为:
s='1,2,3,4,5'
#再用正则匹配:
import re
r=re.compile(r'\b([-+]?[0-9]+(?:\.[0-9]*)?)\b')
#如果看不懂,可以问我。
m=r.findall(s)
print m
#不知道你运行后看到了什么?后面就你自己看着办吧。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com