Python錯誤解決


1、IndentationError:expected an indented block

      

     原因:Python對縮進非常敏感

     解決:在出現此問題的哪一行進行縮進就好,注意tab不能與空格混用,有冒號的下一句一般要縮進

     

 

 

2、TypeError: unorderable types: str() >= int()

      

      原因:input返回的是字符串,所以輸入數字返回的也是字符串

      解決:強制類型轉換,int(input())

     

 

 

3、can't assign to function call

    

    原因:圓括號()表示函數調用,方括號[]表示列表值的引用

    解決:改為[]

   def normalize(name):
      l=list(name)
      l[0]=l[0].upper()
      for i in range(1,len(name)):
         l[i]=l[i].lower()
         l=''.join(l)
       return l

   l1=['adam','LISA','barT']
   l2=list(map(normalize,l1))
   print(l2)

 

 

4、descriptor 'lower' of 'str' object needs an argument

     

      原因:調用的是函數的返回值,但是調用函數時沒有傳參

      解決:此處正確的是調用函數本身,即不帶括號的函數調用

      

 

 

5、ValueError: invalid literal for int() with base 2: '16'

      

      原因:int('16',2)意思是按照二進制將字符串‘16’轉化成十進制,不是將16十進制轉化成二進制,所以base=2時應該只有0,1,超出0,1范圍就會報錯

                 int('16',8)   ——>1*8+6=14

                 int('16',16)  ——>1*16+6=22

     擴展:十進制轉化為二進制:bin(x)

                十進制轉化為八進制:oct(x)

                十進制轉化為十六進制:hex(x)

                返回值均為字符串,並且帶有0b,0o,0x,可以采用replace去掉:bin(x).replace('0b','');可以再套一個int轉化為十進制整數:int(int('1111',2))

                                  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM