正在将选项=(选项%6)+1从python 2更新为python 3

2024-09-27 00:22:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个程序需要choice=(choice%6)+1,这是我用python2编写的。当我尝试在python3中运行它时,我得到了TypeError:不是所有的参数都在字符串格式化期间转换。我刚刚更新到python3,并且修复了这个程序中的大多数东西,但是我似乎无法修复这个问题,所以python3将接受它。我对Python比较陌生,在python3changelog中找不到简单的答案。感谢您的帮助!谢谢


Tags: 字符串答案程序参数python3choicepython2typeerror
1条回答
网友
1楼 · 发布于 2024-09-27 00:22:32

可能,您的程序中有类似choice = input("Enter your choice")的内容。您必须知道,在python2中,在input中输入的任何内容都直接作为Python代码计算。所以如果你输入一个“5”,你就得到了数字5。你知道吗

Python 2.7.6 (default, Mar 22 2014, 22:59:56) 
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> choice = input()
42
>>> type(choice)
<type 'int'>

这会带来一些风险,因此通常不鼓励使用它,而应该改用raw_input。在python3中,input被更改为返回原始字符串(如python2中的raw_input)。你知道吗

Python 3.4.0 (default, Apr 11 2014, 13:05:11) 
[GCC 4.8.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> choice = input()
42
>>> type(choice)
<class 'str'>

要把它变成一个数字,只要做choice = int(choice)。你知道吗

相关问题 更多 >

    热门问题