日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

大部分人都会忽略的Python易错点总结

發布時間:2025/3/20 python 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 大部分人都会忽略的Python易错点总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

python中復數實現(-2) ** 0.5和開根號sqrt(-2)的區別

(-2)**0.5和sqrt(-2)是不同的,前者是復數后者是會報錯的。

print((-2)**0.5) #輸出:(8.659560562354934e-17+1.4142135623730951j)import math math.sqrt(-2)#報錯 ValueError: math domain error

Python用循環構造的函數數組,運行這個數組里面的函數后返回值都一樣

''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:579817333 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' functions = [] for i in range(5):def f(x):return x + ifunctions.append(f)for f in functions:print(f(7))

上面程序的輸出是:

11 11 11 11 11

為什么明明f(x)返回的是x+i,而i是從0到4變化的。按道理執行f(x)后的返回值也應該是變化的,為何我們執行f(x)后是5個一樣的值。

答:這是因為python中函數保存的外面的變量都是存儲的是地址。也就是說x+i中的i是地址,循環執行完成后。i這個地址的值變成了4.所以最后執行f(7)就是一直是11==7+4.
不信你可以輸出id(i)試試。

注意: Python取變量的地址的方法是id(變量名)。

Python數組列表list中extend()和append()的區別

代碼舉例說明

''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:579817333 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' x = [1,2,3] print(x.extend([2,3,4])) """ 輸出: [1,2,3,2,3,4] """ print(x.append([2,3,4])) """ 輸出: [1,2,3,[2,3,4]] """

可以看到:

  • extend()是把參數通過合并的形式融合到原來的列表里面。(融合)
  • append()是把參數當做一個元素加到原來列表里面。(吞并)

Python類變量,類名取變量(className.x)和self取變量(self.x)之間的區別?

  • 類名取變量 和 self取變量它們初始值的地址是完全一樣。 (意味著值也一樣)
  • 用類名取變量不會影響他們變量的地址。(以為著用類名取變量并且修改變量使得兩種取變量的方式值都發生變化)
  • 但是用self取變量方式修改變量就會使得它們地址變得不一樣。(這意味著修改self取的變量只會影響self取變量這種方式的值,不會影響類名取變量方式的值)
  • 看代碼理解這3句話:

    ''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:579817333 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' class Car:color = 'gray'def describe_car(self):return Car.color def describe_self(self):return self.color test = Car() # 類名取Car.color和self.color初始值是一樣的.因為此時他們的地址是完全一樣的. print(test.describe_car()) #輸出:gray print(test.describe_self()) # 輸出:gray print('Carcolor地址:',id(Car.color),'self.color地址:',id(test.color))#你可以看看地址是否相同# 先修改Car.color會影響self.color。因為此時他們的地址是完全一樣的 Car.color = 'red' print(test.describe_car()) #輸出:red print(test.describe_self()) # 輸出:red print('Carcolor地址:',id(Car.color),'self.color地址:',id(test.color))#你可以看看地址是否相同# 修改self.color不會影響Car.color,因為此時他們地址變得不一樣了。 test.color = 'blue' print(test.describe_car()) #輸出:red print(test.describe_self()) # 輸出:blue print('Carcolor地址:',id(Car.color),'self.color地址:',id(test.color))#你可以看看地址是否相同# 經過上一步此時他們兩地址不一樣了。修改Car.color不會影響self.color。因為此時他們的地址是不一樣的 Car.color = 'black' print(test.describe_car()) #輸出:black print(test.describe_self()) # 輸出:blue print('Carcolor地址:',id(Car.color),'self.color地址:',id(test.color))#你可以看看地址是否相同

    tuple元組不可以修改元素,這是元組和List列表的區別之一

    x = (0,1,2) x[0]=-1#這是錯誤的會報錯 TypeError: 'tuple' object does not support item assignment

    Python魔法方法magic method,變量的順序問題

    __mul__(self,other),調用這個魔術方法是self*other,它實際這這樣執行的:self.__mul(other)與50位技術專家面對面20年技術見證,附贈技術全景圖

    總結

    以上是生活随笔為你收集整理的大部分人都会忽略的Python易错点总结的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。