中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》
  • 首頁 > 
  • 教程 > 
  • 開發技術 > 
  • 如何理解Python中的元組和集合以及字符串跟函數還有異常處理

如何理解Python中的元組和集合以及字符串跟函數還有異常處理

發布時間:2021-10-09 09:08:40 來源:億速云 閱讀:124 作者:柒染 欄目:開發技術

這篇文章將為大家詳細講解有關如何理解Python中的元組和集合以及字符串跟函數還有異常處理,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

元組

元組是不可變序列
多任務環境下,同時操作對象時不需要枷鎖;
元組中存儲的時對象的引用:
1)如果元組中對象本身是不可變對象,則不能再引用其他對象;
2)如果元組中的對象是可變對象,則可變對象的引用不允許改變,但數據可以改變。

集合

集合是可變類型的序列
集合沒有value字典,存儲內容的顯示不是按照順序
集合的元素不能重復

字符串

字符串是不可變序列

1、字符串的駐留機制

僅保存一份相同且不可變字符串,不同的值被存放再字符串駐留池中,python的駐留機制對相同的字符串只保留一份拷貝,后續創建相同字符串時,不會開辟新空間,而是把該字符串的地址賦給新創建的變量。
駐留機制的幾種情況(交互模式):
a)字符串長度為0或1時,產生駐留
b)符合標識符(含有字母、數字、下劃線)的字符串,產生駐留
c)字符串只在編譯時進行駐留,而非運行時
d)[-5,256]之間的整數數字,產生駐留
sys中的intern方法強制2個字符串指向同一個對象
pycharm對字符串進行了優化處理
駐留機制的優點:
a)優點:當需要值相同的字符串時,可以直接從字符串池里拿來使用,避免頻繁的創建和銷毀,提升效率和節約內存,因此拼接字符串和修改字符串時會比較影響性能的。
b)在需要進行字符串拼接時建議使用str類型的join方法,而非+,因為join()方式時先計算出所有字符中的長度,然后再拷貝

函數

1、函數的優點:

(1)復用代碼
(2)隱藏實現細節
(3)提高可維護性
(4)提高可讀性便于調試

2、函數的創建:def 函數名([輸入參數])

函數體
[return xxx]

3、函數的參數傳遞:

(1)函數調用時的參數傳遞:
位置實參:根據形參對應的位置進行實參傳遞,位置對應
例如def fuc1(a,b),調用時fuc1(10,20)
關鍵字實參:根據形參名稱進行實參傳遞,
例如def fuc1(a,b),調用時fuc1(b=10,a=20)
(2)如果是不可變對象,在函數體內的修改不會影響實參的值
如果是可變對象,在函數體內的修改會影響實參的值

4、函數的返回值:

(1)函數返回多個值時,結果為元組
(2)函數返回一個值時,結果為原值
(3)函數沒有返回值時,省略return

5、函數的參數定義:

(1)函數定義默認值參數:
函數定義時,給形參設置默認值,只有與默認值不符的時候才需要傳遞實參。
只傳一個參數,未被定義的參數未默認值。
默認值參數注意一定要放在其他需要傳遞實參的形參最后。
(2)個數可變的位置參數:使用*定義,結果為一個元組,例如def fun1(*args)
個數可變的關鍵字形參:使用**定義,結果為一個字典,例如def fun1(**args)
如果要讓函數接受不同類型的實參,必須在函數定義中將接納任意數量實參的形參放在最后。 Python先匹配位置實參和關鍵字實參,再將余下的實參都收集到最后一個形參中。

6、變量的作用區域

局部變量:在函數內定義并使用,局部變量使用global聲明,可變為全局變量
全局變量:在函數外定義的變量,函數內外都可以使用。

7、遞歸函數:函數體內套用該函數本身

(1)遞歸的組成部分:遞歸調用與遞歸終止條件
(2)遞歸的調用過程:每遞歸調用一次函數,都會在棧內分配一個棧幀。
每執行完一次函數,都會釋放相應的空間。
(3)遞歸的優缺點:缺點占內存多,效率低下;優點思路和代碼簡單。

例如求階層:
def fuc1(n):
  if n==1:
    return 1
   else:
     return n*fuc1(n)
 print(fuc1(10))

例如斐波那契數列:
def fib(n):
  if n==1:
    return 1
  elif n==2:
    return 2
  elif :
    return fib(n-1)+fib(n-2)

8、將函數存儲在模塊中

將函數存儲在被稱為模塊的獨立文件中,再將模塊導入到主程序中
(1)導入整個模塊:模塊是擴展名為.py的文件,包含要導入到程序中的代碼。
import 模塊名
模塊名.函數名()
(2)導入特定函數:from module_name import function_0, function_1, function_2
(3)使用 as 給函數指定別名:from 模塊 import 原函數名 as 新函數名
(4)使用 as 給模塊指定別名:import 原模塊名 as 新模塊名
(5)導入模塊中的所有函數:from 模塊 import *

9、函數編寫指南:

(1)名稱:具有描述性,只使用小寫字母和下劃線
(2)注釋:跟在函數定義后
(3)形參:指定默認值時等號兩邊不要有空格
(4)關鍵字實參:等號兩邊不要有空格
(5)長度:每行代碼最好不超過79個字符;如果形參太多,可在函數定義中輸入左括號后按回車鍵,并在下一行按兩次Tab鍵,從而將形參列表和只縮進一層的函數體區分開來。
(6)分隔:每個函數之間用兩行空行分開
(7)import:一般所有import都放在文件開頭

Bug

1、Bug常見類型

A、錯誤點不熟悉導致
(1)輸入的內容默認為字符型,用字符型進行數字計算、比較等。解決方案:轉化為數字類型
(2)while循環未實現定義變量,變量未改變
(3)中英文符號混用
(4)一個等號時賦值,兩個等號時等于
(5)縮進錯誤
(6)忘了冒號:如if語句,循環語句,else子句等
(7)字符串拼接的時候,把字符串和數字拼在一起
B、知識不熟練導致
(1)索引越界
(2)append()方法不熟練,append每次只能添加一個元素,只對列表。
C、思路不清導致的問題
解決方案:(1)print打印輸出;(2)使用注釋暫時注釋掉部分代碼
D、被動掉坑:
程序代碼邏輯沒有錯,只是因為用戶錯誤操作或者一些例外情況而導致的程序崩潰。
例如:

a=int(input('請輸入一個整數'))
b=int(input('請輸入另一個整數'))
result=a/b
print('結果為',result)
#若a輸入為q則報錯
#若b輸入為0也報錯

解決方法:python提供異常處理機制,可以在異常出現時即時捕獲,然后內部消化,讓程序繼續運行。例如:
1、try except結構

try:#下為可能出現問題的代碼
  a=int(input('請輸入一個整數'))
  b=int(input('請輸入另一個整數'))
  result=a/b
  print('結果為',result)
except ZeroDivisionError
  print('對不起,除數不允許為0')
print('程序結束')

2、多個excep結構:捕捉異常的順序按照先字類后父類的順序,為了避免遺漏可能出現的異常,可以在最后增加BaseException。例如:

try:
  a=int(input('請輸入一個整數'))
  b=int(input('請輸入另一個整數'))
  result=a/b
except ZeroDivisionError:
  print('對不起,除數不允許為0')
except ValueError:
  print('不能將字符串轉換為數字')
except BaseException as e:
  print(e)

3、try except else結構(不知道會出什么錯誤的情況)

try:
  a=int(input('請輸入一個整數'))
  b=int(input('請輸入另一個整數'))
  result=a/b
except BaseException as e:
   print('出錯了')
   print(e)
else:
   print('結果為',result)

4、try except else finally結構(finally塊無論是否發生異常都會被執行,能用來釋放try塊中申請的資源)

try:
  a=int(input('請輸入一個整數'))
  b=int(input('請輸入另一個整數'))
  result=a/b
except BaseException as e:
   print('出錯了')
   print(e)
else:
   print('結果為',result)
finally:
   print('謝謝您的使用')
print('程序結束')

3、python異常處理機制

traceback模塊(打印異常信息)

import traceback
try:
  print(1/0)
except:
  traceback.print_exc()

pycharm開發環境的調試

(1)斷電
程序運行到此處,暫時掛起,停止執行。此時可以詳細觀察程序的運行情況,方便做出進一步的判斷。
(2)進入調試視圖
進入調試視圖的三種方式:
1)單擊工具欄上的按鈕(小蟲子)
2)右鍵單擊編輯區:點擊:debug模塊名
3)快捷鍵:shift+F9

編程思想

(1)兩種編程思想

(2)類和對象的創建

1)類:多個類似事物組成的群體的統稱,能夠幫助我們快速理解和判斷事物的性質。
2)對象:實例或對象,可以是類的具體,python中一切皆對象。
3)創建:

#創建:
class Student:         #Student為類的名稱,可以由多個單詞組成,要求首字母大寫,其余小寫
  pass#沒想好的情況下
#類的組成
#1、類屬性
  native_pace='吉林'#直接寫在類里的變量,稱為類屬性
#2、實例方法
  def eat(self):
    print('學生在吃飯...')#在類之外定義稱為函數,類之內定義的稱為方法
#3、靜態方法
  staticmathod
  def method():
    print('靜態方法')
#4、類方法
  classmethod
  def cm(cls):
    print('類方法')

關于如何理解Python中的元組和集合以及字符串跟函數還有異常處理就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南丹县| 永吉县| 平顶山市| 江永县| 千阳县| 紫云| 宣武区| 金堂县| 本溪市| 玉山县| 哈尔滨市| 旅游| 岢岚县| 乌拉特中旗| 云龙县| 北流市| 南郑县| 绩溪县| 运城市| 黄大仙区| 剑川县| 淮南市| 肥城市| 北海市| 家居| 凤阳县| 辽阳市| 饶阳县| 新津县| 宁南县| 随州市| 金塔县| 鄂尔多斯市| 乡城县| 同江市| 旬邑县| 西藏| 阳泉市| 阳高县| 岢岚县| 额敏县|