免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開(kāi)通VIP
99%的人都會(huì)忽略的Python易錯(cuò)點(diǎn)總結(jié)

python中復(fù)數(shù)實(shí)現(xiàn)(-2)**0.5和開(kāi)根號(hào)sqrt(-2)的區(qū)別

(-2)**0.5和sqrt(-2)是不同的,前者是復(fù)數(shù)后者是會(huì)報(bào)錯(cuò)的。

print((-2)**0.5)#輸出:(8.659560562354934e-17+1.4142135623730951j)import mathmath.sqrt(-2)#報(bào)錯(cuò)ValueError: math domain error
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

Python用循環(huán)構(gòu)造的函數(shù)數(shù)組,運(yùn)行這個(gè)數(shù)組里面的函數(shù)后返回值都一樣

functions = []for i in range(5):    def f(x):      return x + i    functions.append(f)for f in functions:    print(f(7))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
上面程序的輸出是:1111111111
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

為什么明明f(x)返回的是x+i,而i是從0到4變化的。按道理執(zhí)行f(x)后的返回值也應(yīng)該是變化的,為何我們執(zhí)行f(x)后是5個(gè)一樣的值。
答:這是因?yàn)閜ython中函數(shù)保存的外面的變量都是存儲(chǔ)的是地址。也就是說(shuō)x+i中的i是地址,循環(huán)執(zhí)行完成后。i這個(gè)地址的值變成了4.所以最后執(zhí)行f(7)就是一直是11==7+4.
不信你可以輸出id(i)試試。

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

Python數(shù)組列表list中extend()和append()的區(qū)別

代碼舉例說(shuō)明

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]]'''
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

可以看到:

  • extend()是把參數(shù)通過(guò)合并的形式融合到原來(lái)的列表里面。(融合)
  • append()是把參數(shù)當(dāng)做一個(gè)元素加到原來(lái)列表里面。(吞并)

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

  1. 類名取變量 和 self取變量它們初始值的地址是完全一樣。 (意味著值也一樣)
  2. 用類名取變量不會(huì)影響他們變量的地址。(以為著用類名取變量并且修改變量使得兩種取變量的方式值都發(fā)生變化)
  3. 但是用self取變量方式修改變量就會(huì)使得它們地址變得不一樣。(這意味著修改self取的變量只會(huì)影響self取變量這種方式的值,不會(huì)影響類名取變量方式的值)
    注意:如果這個(gè)變量是類的話修改了這個(gè)類成員屬性后,該變量仍然是靜態(tài)變量。用self這種方式來(lái)取仍然地址與用類名這種方式取是一樣的
    如果你發(fā)現(xiàn)你數(shù)組list里面修改一個(gè)元素,然后其他所有元素值也發(fā)生了變化,這個(gè)bug很可能是因?yàn)樯厦婺莻€(gè)“注意”你不了解。修改這個(gè)bug的方法就是重新創(chuàng)建一個(gè)對(duì)象賦值給那個(gè)變量,而不是只修改那個(gè)變量的成員屬性。

看代碼理解這3句話:

class Car: color = 'gray' def describe_car(self): return Car.color def describe_self(self): return self.color test = Car()# 類名取Car.color和self.color初始值是一樣的.因?yàn)榇藭r(shí)他們的地址是完全一樣的.print(test.describe_car()) #輸出:gray print(test.describe_self()) # 輸出:gray print('Carcolor地址:',id(Car.color),'self.color地址:',id(test.color))#你可以看看地址是否相同# 先修改Car.color會(huì)影響self.color。因?yàn)榇藭r(shí)他們的地址是完全一樣的Car.color = 'red'print(test.describe_car()) #輸出:redprint(test.describe_self()) # 輸出:redprint('Carcolor地址:',id(Car.color),'self.color地址:',id(test.color))#你可以看看地址是否相同# 修改self.color不會(huì)影響Car.color,因?yàn)榇藭r(shí)他們地址變得不一樣了。test.color = 'blue'print(test.describe_car()) #輸出:redprint(test.describe_self()) # 輸出:blueprint('Carcolor地址:',id(Car.color),'self.color地址:',id(test.color))#你可以看看地址是否相同# 經(jīng)過(guò)上一步此時(shí)他們兩地址不一樣了。修改Car.color不會(huì)影響self.color。因?yàn)榇藭r(shí)他們的地址是不一樣的Car.color = 'black'print(test.describe_car()) #輸出:blackprint(test.describe_self()) # 輸出:blueprint('Carcolor地址:',id(Car.color),'self.color地址:',id(test.color))#你可以看看地址是否相同
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

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

x = (0,1,2)x[0]=-1#這是錯(cuò)誤的會(huì)報(bào)錯(cuò)TypeError: 'tuple' object does not support item assignment
  • 1
  • 2
  • 3

Python魔法方法magic method,變量的順序問(wèn)題

__mul__(self,other),調(diào)用這個(gè)魔術(shù)方法是self*other,它實(shí)際這這樣執(zhí)行的:self.__mul(other)。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Python變量類型案例解讀
十分鐘快速入門 Python
python和Java語(yǔ)法對(duì)比
PHP入門速成(2)
集錦 | 53個(gè)Python面試問(wèn)題 答案打包帶走
《源碼探秘 CPython》34. 對(duì)象的哈希值
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服