我是Python的新手。在Python中input()
和raw_input()
逐行读取,而在C / C ++中,读取输入的默认分隔符是空格。
我知道我可以使用split()
来获取列表。没有空格作为默认输入分隔符有什么意义吗?
答案 0 :(得分:2)
在Python 2中input()
接受来自用户的一行代码,执行它并返回结果 - 因此逐行而不是逐字逐行阅读只是因为它使得该过程更容易。 raw_input
是input
的双胞胎,但它没有尝试评估输入的内容,只是将其作为str
返回。
运行用户输入也非常危险,这就是为什么它在Python 3中删除了,而raw_input
占用了input
的位置。
Python 2 :
--> test_var = input('enter a number: ')
# user enters "71 + 9" (without quotes), Python tries to run the text entered
--> test_var
# 80
--> type(test_var)
# <type 'int'>
--> test_var = raw_input('enter another number: ')
# user enters "99 - 9", Python simply gives back the string '99 - 9'
--> test_var
# '99 - 9'
--> type(test_var)
# <type 'str'>
--> test_var = input('enter something')
# user enters "howdy" (without the quotes)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<string>", line 1, in <module>
NameError: name 'howdy' is not defined
答案 1 :(得分:0)
在Python中,输入默认类型为string
,在string
对象的值中,允许使用空格(例如s = "Bob Fred"
)。 split(delim)
用于按指定的分隔符分割字符串对象(如果将delim
参数留空,则默认分隔符在此处为空格)。
我认为这是默认选择(设计决策),因为您很快就会意识到将字符串转换为整数,浮点数等类型的数据类型非常简单。