Python2代码转化成python3问题记录

最近在调试一些代码,这些代码在python2环境中是跑的通的,然后因为现在用的是Python3环境,所以要进行修改。简单说说修改图中遇到的问题吧。

问题一:输出

只要是了解一点点Python,两个版本之间的输出语法之间的差别还是很容易看出来的。比如:
Python 2中输出的语法格式是:print “输出内容”
而Python3中,是print(“输出内容”)

问题二

Python3 取消了 xrange() 函数,和 range() 函数合并为 range()。

问题三:输入

Python3中取消了raw_input(),和input()合并成了input()。并且输入的类型也发生了改变。

Python2中的input()接收的就是数字,raw_input()接收的是一个字符串

Python3中的input()默认接受的都是字符串。

这一个问题我解决了好久,因为程序中需要利用输入的数字,但是它是字符串的格式,所以不能用。比如:

python 2转python3 python2转python3报错_python


这个代码就会报错,因为此时的K是字符类型,不能用作列表下标。但是如果强制转化成int类型,他就只能识别每一个个位数,而且在输入的时候输入的","也是不能转化成int类型的。ValueError: invalid literal for int() with base 10: ‘,’

比如这样:

python 2转python3 python2转python3报错_Python_02


所以我们需要将输入存储在一个列表或者是元组中。

我用的是eval(input(prompt))方法。这个时候的输入的接收结果就是元组。

python 2转python3 python2转python3报错_字符串_03


python 2转python3 python2转python3报错_字符串_04

问题四:途径问题

为了保存原文件,所以我把程序包复制了一份放在了别的地方。位置一旦改变就会出现路径错误。FileNotFoundError: [WinError 3] 系统找不到指定的路径。

python 2转python3 python2转python3报错_Python_05

这个时候只要修改出错对应位置的文件名就可以。或者在指定的地方新建指定的路径,或者将程序中的路径改为已有的路径。

暂时就这些吧,如果还有后续再补充~

(本人是小白,刚开始学Python没有多久。如果有什么不对的,欢迎指正。另外,本文是根据调试过程中出现的问题做了一个记录,为了以后遇到同样的问题时能够有迹可循,另外也希望能帮助到和我一样的小白。侵权即删)