奇酷教育-Python培训|UI培训|WEB大前端培训|Unity3D培训|HTML5培训|人工智能培训|JAVA开发的教育品牌

您現在所在的位置:首頁 >關于奇酷 > 行業動態 > 奇酷Python培訓新手容易犯的4個錯誤

奇酷Python培訓新手容易犯的4個錯誤

來源:奇酷教育 發表于:

奇酷教育-Python培訓_Python教程_Python基礎教程

奇酷Python培訓新手容易犯的4個錯誤
  python語言里面有一些小的坑,特別容易弄混弄錯,初學者若不注意的話,很容易坑進去,下面奇酷Python培訓給大家深入解析一些這幾個坑,希望對初學者有所幫助.
  1.i+=1不等于++i
  初學者對Python語言不是特別了解的話,又正好有c++,java的語言背景,很容易把++i和i+=1弄混
  先來看一個小例子:
  i=0
  mylist=[1,2,3,4,5,6]
  while i <len(mylist):< p>
  print(mylist[i])
  ++i
  這段代碼會想當然的認為,沒有啥問題啊,一個循環輸出,i不斷的+1,蠻對的呀.其實不是的,這個代碼會一直輸出1,一個死循環.因為Python的解釋器會將++i操作為+(+i).其中+表示是正數符號,對于--i也是類似的.
  print(+1)
  >>>1
  print(++1)
  >>>1
  print(+++1)
  >>>1
  這下明白了++i雖然在Python語法是合法的,但是并不是我們理解的自增的操作.
  2.分清楚==和is的用法
  在判斷字符串是否相等的時候,初學者特別會弄混is和==,這樣的結果是程序在不同的情況下表現不同:
  比如先看一個簡單的例子:
  a='Hi'
  b='Hi'
  print(a is b)
  >>>True
  print(a==b)
  >>>True #看起來is和==好像是一樣的
  我們再看第二個例子:
  str1='Wo shi yi ge chi huo'
  str2='Wo shi yi ge chi huo'
  print(str1 is str2)
  >>>False#is的結果是False
  print(str1==str2)
  >>>True #==的結果為True,看二者不一樣了吧
  第三個例子
  str3='string'
  str4=''.join(['s','t','r','i','n','g'])
  print(str3)
  >>>string
  print(str3 is str4)
  >>>False #is的結果是False
  print(str3==str4)
  >>>True #==的結果為True,看二者不一樣了吧
  這就是很容易混淆初學者的地方,感覺很奇怪,為什么有的時候is和==輸出相同,有的時候不同呢.好我們來一探究竟:
  我們用內置的id()這函數,這個函數用來返回對象的內存地址,查一下就清楚了
  is是對象的標示符,用來比較兩個對象的內存空間是不是一樣,是不是用的同一塊空間地址,而==是比較兩個對象的內容是否相等.
  3.連接字符串特別是大規模的字符串,最好用join而不是+
  字符串處理的時候,最常用的是連接,Python中的字符串與其他的語言有一點不同,它是不可變對象,一旦創建不能改變.而這個特性直接會影響到Python中字符串連接的效率.
  用+連接字符串:
  str1,str2,str3='test','string','connection'
  print(str1+str2+str3)
  >>>test string connection
  用join連接字符串
  str1,str2,str3='test ','string ','connection'
  print(''.join([str1,str2,str3]))
  >>>test string connection
  但是若是連接大規模的字符串,比如要連接10萬左右的字符串的時候,join的方法效率就會快很多(甚至相差百倍).比如下面這10萬個字符串連接.
  long_str_list=['This is a long string' for in range(1,100000)]
  原因是因為若要連接字符串:S1+S2+S3+....+SN,由于字符串是不可變的對象,執行一次就要申請一塊新的內存,這樣的話在N個字符串連接的過程中,會產生N-1個中間結果,每產生一個中間結果就要申請一次內存,這樣會嚴重影響執行效率.
  而join不一樣,它是一次性申請總的內存,然后把字符串里面的每一個元素復制到內存中去,所以join會快很多.
  因此,字符串的連接,尤其是大的字符串處理,最好用join
  4.不要在for和while循環后面寫else塊
  Python提供了一種很多編程語言都不支持的功能,那就是可以在循環內部的語句塊后面直接編寫else塊。比如:
  for i in range(3):
  print('Loop %d'%i)
  else:
  print('Else block')
  >>>Loop 0
  >>>Loop 1
  >>>Loop 2
  >>>Else block
  這種else塊會在整個循環執行完之后立刻運行。既然如此,那它為什么叫做else呢?為什么不叫and ?在if/else語句中,else的意思是:如果不執行前面那個if塊,那就執行else塊。
  同理try/except/else也是如此,該結構的else的含義是:如果前面的try塊沒有失敗,那就執行else塊。
  try/finally同樣非常直觀,這里的finally的意思是:執行過前面的try塊之后,不管如何總是執行finally塊。
  問題來了對于剛接觸Python的程序員可能會把for/else結構中的else塊理解為:如果循環沒有正常執行完,那就執行else塊。
  實際上剛好相反——在循環里用break語句提前跳出,會導致程序不執行else塊,這一點會有點繞.對于不熟悉for/else的人來說,會令閱讀代碼的人感到相當費解.
       以上就是qiku為大家分享的“奇酷Python培訓新手容易犯的4個錯誤”謝謝大家觀看,如果對Python感興趣的話,想學Python培訓的,也可以在線咨詢,我們將竭誠為你解答。

主站蜘蛛池模板: 德国BOSCH电磁阀-德国HERION电磁阀-JOUCOMATIC电磁阀|乾拓百科 | 北京租车公司_汽车/客车/班车/大巴车租赁_商务会议/展会用车/旅游大巴出租_北京桐顺创业租车公司 | 杭州厂房降温,车间降温设备,车间通风降温,厂房降温方案,杭州嘉友实业爽风品牌 | 安徽净化工程设计_无尘净化车间工程_合肥净化实验室_安徽创世环境科技有限公司 | 湖南档案密集架,智能,物证,移动,价格-湖南档案密集架厂家 | 科昊仪器超纯水机系统-可成气相液氮罐-美菱超低温冰箱-西安昊兴生物科技有限公司 | 免费个人pos机申请办理-移动pos机刷卡-聚合收款码办理 | 小区健身器材_户外健身器材_室外健身器材_公园健身路径-沧州浩然体育器材有限公司 | 撕碎机,撕破机,双轴破碎机-大件垃圾破碎机厂家 | 理化生实验室设备,吊装实验室设备,顶装实验室设备,实验室成套设备厂家,校园功能室设备,智慧书法教室方案 - 东莞市惠森教学设备有限公司 | 威廉希尔WilliamHill·足球(中国)体育官方网站 | 5L旋转蒸发器-20L-50L旋转蒸发器-上海越众仪器设备有限公司 | 螺钉式热电偶_便携式温度传感器_压簧式热电偶|无锡联泰仪表有限公司|首页 | 阳光模拟试验箱_高低温试验箱_高低温冲击试验箱_快速温变试验箱|东莞市赛思检测设备有限公司 | 恒湿机_除湿加湿一体机_恒湿净化消毒一体机厂家-杭州英腾电器有限公司 | VOC检测仪-甲醛检测仪-气体报警器-气体检测仪厂家-深恒安科技有限公司 | 济南侦探调查-济南调查取证-山东私家侦探-山东白豹调查咨询公司 密集架|电动密集架|移动密集架|黑龙江档案密集架-大量现货厂家销售 | 北京发电车出租-发电机租赁公司-柴油发电机厂家 - 北京明旺盛安机电设备有限公司 | RTO换向阀_VOC高温阀门_加热炉切断阀_双偏心软密封蝶阀_煤气蝶阀_提升阀-湖北霍科德阀门有限公司 | 方源木业官网-四川木门-全国木门专业品牌 | 湖南自考_湖南自学考试| 锂离子电池厂家-山东中信迪生电源| 云南标线|昆明划线|道路标线|交通标线-就选云南云路施工公司-云南云路科技有限公司 | 工业铝型材-铝合金电机壳-铝排-气动执行器-山东永恒能源集团有限公司 | KBX-220倾斜开关|KBW-220P/L跑偏开关|拉绳开关|DHJY-I隔爆打滑开关|溜槽堵塞开关|欠速开关|声光报警器-山东卓信有限公司 | 东莞市天进机械有限公司-钉箱机-粘箱机-糊箱机-打钉机认准东莞天进机械-厂家直供更放心! | 水厂自动化|污水处理中控系统|水利信息化|智慧水务|智慧农业-山东德艾自动化科技有限公司 | 气体检测仪-氢气检测仪-可燃气体传感器-恶臭电子鼻-深国安电子 | 华禹护栏|锌钢护栏_阳台护栏_护栏厂家-华禹专注阳台护栏、楼梯栏杆、百叶窗、空调架、基坑护栏、道路护栏等锌钢护栏产品的生产销售。 | 全自动过滤器_反冲洗过滤器_自清洗过滤器_量子除垢环_量子环除垢_量子除垢 - 安士睿(北京)过滤设备有限公司 | 云南成人高考网| 有源电力滤波装置-电力有源滤波器-低压穿排电流互感器|安科瑞 | 双杰天平-国产双杰电子天平-美国双杰-常熟双杰仪器 | 江苏农村商业银行招聘网_2024江苏农商行考试指南_江苏农商行校园招聘 | 天津仓库出租网-天津电商仓库-天津云仓一件代发-【博程云仓】 | 洛阳永磁工业大吊扇研发生产-工厂通风降温解决方案提供商-中实洛阳环境科技有限公司 | 桁架机器人_桁架机械手_上下料机械手_数控车床机械手-苏州清智科技装备制造有限公司 | 主题班会网 - 安全教育主题班会,各类主题班会PPT模板 | PU树脂_水性聚氨酯树脂_聚氨酯固化剂_聚氨酯树脂厂家_宝景化工 | 百度爱采购运营研究社社群-店铺托管-爱采购代运营-良言多米网络公司 | 气胀轴|气涨轴|安全夹头|安全卡盘|伺服纠偏系统厂家-天机传动 |