<legend id='g3SJf'><style id='g3SJf'><dir id='g3SJf'><q id='g3SJf'></q></dir></style></legend>

      <i id='g3SJf'><tr id='g3SJf'><dt id='g3SJf'><q id='g3SJf'><span id='g3SJf'><b id='g3SJf'><form id='g3SJf'><ins id='g3SJf'></ins><ul id='g3SJf'></ul><sub id='g3SJf'></sub></form><legend id='g3SJf'></legend><bdo id='g3SJf'><pre id='g3SJf'><center id='g3SJf'></center></pre></bdo></b><th id='g3SJf'></th></span></q></dt></tr></i><div id='g3SJf'><tfoot id='g3SJf'></tfoot><dl id='g3SJf'><fieldset id='g3SJf'></fieldset></dl></div>
      • <bdo id='g3SJf'></bdo><ul id='g3SJf'></ul>

      1. <tfoot id='g3SJf'></tfoot>

        <small id='g3SJf'></small><noframes id='g3SJf'>

        Python3 错误:TypeError:无法将“字节"对象隐式转

        时间:2023-08-04
        <i id='8lsVV'><tr id='8lsVV'><dt id='8lsVV'><q id='8lsVV'><span id='8lsVV'><b id='8lsVV'><form id='8lsVV'><ins id='8lsVV'></ins><ul id='8lsVV'></ul><sub id='8lsVV'></sub></form><legend id='8lsVV'></legend><bdo id='8lsVV'><pre id='8lsVV'><center id='8lsVV'></center></pre></bdo></b><th id='8lsVV'></th></span></q></dt></tr></i><div id='8lsVV'><tfoot id='8lsVV'></tfoot><dl id='8lsVV'><fieldset id='8lsVV'></fieldset></dl></div>
          <bdo id='8lsVV'></bdo><ul id='8lsVV'></ul>

          <legend id='8lsVV'><style id='8lsVV'><dir id='8lsVV'><q id='8lsVV'></q></dir></style></legend>

          <small id='8lsVV'></small><noframes id='8lsVV'>

            <tbody id='8lsVV'></tbody>

          <tfoot id='8lsVV'></tfoot>

                  本文介绍了Python3 错误:TypeError:无法将“字节"对象隐式转换为 str的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                  问题描述

                  我正在 learnpythonthehardway 中的练习 41 并不断收到错误:

                  I am working on exercise 41 in learnpythonthehardway and keep getting the error:

                    Traceback (most recent call last):
                    File ".url.py", line 72, in <module>
                      question, answer = convert(snippet, phrase)
                    File ".url.py", line 50, in convert
                      result = result.replace("###", word, 1)
                  TypeError: Can't convert 'bytes' object to str implicitly
                  

                  我使用的是python3,而书籍使用的是python2,所以我做了一些更改.这是脚本:

                  I am using python3 while the books uses python2, so I have made some changes. Here is the script:

                  #!/usr/bin/python
                  # Filename: urllib.py
                  
                  import random
                  from random import shuffle
                  from urllib.request import urlopen
                  import sys
                  
                  WORD_URL = "http://learncodethehardway.org/words.txt"
                  WORDS = []
                  
                  PHRASES = {
                              "class ###(###):":
                                  "Make a class named ### that is-a ###.",
                              "class ###(object):
                  	def __init__(self, ***)" :
                                  "class ### has-a __init__ that takes self and *** parameters.",
                              "class ###(object):
                  	def ***(self, @@@)":
                                  "class ### has-a funciton named *** that takes self and @@@ parameters.",
                              "*** = ###()":
                                  "Set *** to an instance of class ###.",
                              "***.*** = '***'":
                                  "From *** get the *** attribute and set it to '***'."
                  }
                  
                  # do they want to drill phrases first
                  PHRASE_FIRST = False
                  if len(sys.argv) == 2 and sys.argv[1] == "english":
                      PHRASE_FIRST = True
                  
                  # load up the words from the website
                  for word in urlopen(WORD_URL).readlines():
                      WORDS.append(word.strip())
                  
                  def convert(snippet, phrase):
                      class_names = [w.capitalize() for w in
                                      random.sample(WORDS, snippet.count("###"))]
                      other_names = random.sample(WORDS, snippet.count("***"))
                      results = []
                      param_names = []
                  
                      for i in range(0, snippet.count("@@@")):
                          param_count = random.randint(1,3)
                          param_names.append(', '.join(random.sample(WORDS, param_count)))
                  
                      for sentence in snippet, phrase:
                          result = sentence[:]
                  
                          # fake class names
                          for word in class_names:
                              result = result.replace("###", word, 1)
                  
                          # fake other names
                          for word in other_names:
                              result = result.replace("***", word, 1)
                  
                          # fake parameter lists
                          for word in param_names:
                              result = result.replace("@@@", word, 1)
                  
                          results.append(result)
                  
                      return results
                  
                  # keep going until they hit CTRL-D
                  try:
                      while True:
                          snippets = list(PHRASES.keys())
                          random.shuffle(snippets)
                  
                          for snippet in snippets:
                              phrase = PHRASES[snippet]
                              question, answer = convert(snippet, phrase)
                              if PHRASE_FIRST:
                                  question, answer = answer, question
                  
                              print(question)
                  
                              input("> ")
                              print("ANSWER: {}
                  
                  ".format(answer))
                  except EOFError:
                      print("
                  Bye")
                  

                  我到底做错了什么?谢谢!

                  What exactly am I doing wrong here? Thanks!

                  推荐答案

                  urlopen() 返回一个字节对象,要对其执行字符串操作,您应该将其转换为 str 首先.

                  urlopen() returns a bytes object, to perform string operations over it you should convert it to str first.

                  for word in urlopen(WORD_URL).readlines():
                      WORDS.append(word.strip().decode('utf-8')) # utf-8 works in your case
                  

                  要获得正确的字符集:如何下载python中有正确字符集的任何(!)网页吗?

                  这篇关于Python3 错误:TypeError:无法将“字节"对象隐式转换为 str的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                  上一篇:如何将嵌套列表列表转换为 python 3.3 中的元组列 下一篇:在 Python 上将字符串转换为日期类型

                  相关文章

                  最新文章

                  <i id='uBM5f'><tr id='uBM5f'><dt id='uBM5f'><q id='uBM5f'><span id='uBM5f'><b id='uBM5f'><form id='uBM5f'><ins id='uBM5f'></ins><ul id='uBM5f'></ul><sub id='uBM5f'></sub></form><legend id='uBM5f'></legend><bdo id='uBM5f'><pre id='uBM5f'><center id='uBM5f'></center></pre></bdo></b><th id='uBM5f'></th></span></q></dt></tr></i><div id='uBM5f'><tfoot id='uBM5f'></tfoot><dl id='uBM5f'><fieldset id='uBM5f'></fieldset></dl></div>
                  <tfoot id='uBM5f'></tfoot>
                  <legend id='uBM5f'><style id='uBM5f'><dir id='uBM5f'><q id='uBM5f'></q></dir></style></legend>
                  • <bdo id='uBM5f'></bdo><ul id='uBM5f'></ul>

                  <small id='uBM5f'></small><noframes id='uBM5f'>