python input()EOF错误和int类型的返回值?

时间:2017-09-19 05:49:28

标签: python python-2.x

我对这两个短代码有2个问题。

1

name = input('what: ')
print(name)

输出

what: 641u
Traceback (most recent call last):
  File "/Users/vuthynun/PycharmProjects/untitled1/h/__init__.py", line 1, in <module>
    name = input('what: ')
  File "<string>", line 1
    641u
       ^
SyntaxError: unexpected EOF while parsing

Process finished with exit code 1

为什么它会给我这个错误?

2

name = input('what: ')

print(type(name))

输出:

what: 23
<type 'int'>

Process finished with exit code 0

为什么名称类型为int?我以为所有输入都转换为字符串。

请帮助我理解这一点。它杀了我。

2 个答案:

答案 0 :(得分:3)

在python 2中使用 var appdelgateObj = UIApplication.shared.delegate as! AppDelegate if let destinationVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: “ToPresentVC”) as? ToPresentVC { if let window = appdelgateObj.window , let rootViewController = window.rootViewController { var currentController = rootViewController while let presentedController = currentController.presentedViewController { currentController = presentedController } currentController.present(destinationVC, animated: true, completion: nil) } } 代替raw_input。 这就是你如何获得字符串。否则python会评估你给它的东西,这会给你意想不到的行为。

答案 1 :(得分:-1)

这是Python 2.7中的行为。您通过input接受的任何内容都将转换为int类型,而您通过raw_input接受的任何内容都将转换为str类型。

对于Python 3中的行为,请检查:What's the difference between raw_input() and input() in python3.x?