第一个问题。我正在努力学习python,我正在练习23.我输入的代码与Zed所说的完全是他的书。我收到错误消息。我在谷歌和这里搜索了答案,但我仍然没有发现任何适用的。这是我的代码,我试图通过窗口的电源shell运行,如下所示:
import sys
script, input_encoding, error = sys.argv
def main(language_file, encoding, errors):
line = language_file.readline()
if line:
print_line(line, encoding, errors)
return main(language_file, encoding, errors)
def print_line(line, encoding, errors):
next_lang = line.strip()
raw_bytes = next_lang.encode(encoding, errors=errors)
cooked_string = raw_bytes.decode(encoding, errors=errors)
print(raw_bytes, "<=========>", encoding = cooked_string)
languages = open("languages.txt", encoding="utf-8")
main(languages, input_encoding, error)
当我做他在power shell中提出的要求时,以前一直有效:
Python ex23.py utf-8 strict
我明白了:
PS C:\Users\...\save> python ex23.py utf-8 strict
Traceback (most recent call last):
File "ex23.py", line 23, in <module>
main(languages, input_encoding, error)
File "ex23.py", line 9, in main
print_line(line, encoding, errors)
File "ex23.py", line 17, in print_line
print(raw_bytes, "<=========>", encoding = cooked_string)
TypeError: 'encoding' is an invalid keyword argument for this function
PS C:\Users\...\save>
我正在尝试阅读并理解错误。什么是'编码'?这对于这三行代码是否意味着,它不了解'编码'是什么?我们不是把它说成是一个论点吗?
Zed实际上总是使用稍微不同的命令行cmdlet $ Python3.6 ex23.py utf-8 strict
我试过调用它python3(就像其他建议的stackoverflow帖子一样)和python3.6(就像他一样)有和没有$符号。我以为我会提到这一点,因为我在Stack Overflow上看到其他地方可以解决这个问题,但是这些格式中的每一种都给了我shell中的红色错误文本,并且我已经让所有其他的练习以我的方式工作了。一直在做。我用红色文字得到以下内容。
"python3 : The term 'python3' is not recognized as the name of a cmdlet, function, script
file, or operable program. Check the spelling of the name, or if a path was included,
verify that the path is correct and try again.
At line:1 char:1"
如果我使用美元符号,则相同。
我肯定在使用Python 3,因为当我从powershell运行python时,它说它是python3.6.4并且我最近刚刚下载了python,获得了最新版本。
提前感谢您的帮助。