欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python中關(guān)于元組 集合 字符串 函數(shù) 異常處理的全面詳解

 更新時間:2021年10月08日 16:09:49   作者:Joyce 周  
本篇文章介紹了我在學(xué)習(xí)python過程中對元組、集合、字符串、函數(shù)、異常處理的總結(jié),通讀本篇對大家的學(xué)習(xí)或工作具有一定的價值,需要的朋友可以參考下

元組

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

在這里插入圖片描述

集合

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

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

字符串

字符串是不可變序列

1、字符串的駐留機(jī)制

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

2、常用操作

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

函數(shù)

1、函數(shù)的優(yōu)點:

(1)復(fù)用代碼
(2)隱藏實現(xiàn)細(xì)節(jié)
(3)提高可維護(hù)性
(4)提高可讀性便于調(diào)試

2、函數(shù)的創(chuàng)建:def 函數(shù)名([輸入?yún)?shù)])

函數(shù)體
[return xxx]

3、函數(shù)的參數(shù)傳遞:

(1)函數(shù)調(diào)用時的參數(shù)傳遞:
位置實參:根據(jù)形參對應(yīng)的位置進(jìn)行實參傳遞,位置對應(yīng)
例如def fuc1(a,b),調(diào)用時fuc1(10,20)
關(guān)鍵字實參:根據(jù)形參名稱進(jìn)行實參傳遞,
例如def fuc1(a,b),調(diào)用時fuc1(b=10,a=20)
(2)如果是不可變對象,在函數(shù)體內(nèi)的修改不會影響實參的值
如果是可變對象,在函數(shù)體內(nèi)的修改會影響實參的值

4、函數(shù)的返回值:

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

5、函數(shù)的參數(shù)定義:

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

在這里插入圖片描述

6、變量的作用區(qū)域

局部變量:在函數(shù)內(nèi)定義并使用,局部變量使用global聲明,可變?yōu)槿肿兞?br /> 全局變量:在函數(shù)外定義的變量,函數(shù)內(nèi)外都可以使用。

7、遞歸函數(shù):函數(shù)體內(nèi)套用該函數(shù)本身

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

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

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

8、將函數(shù)存儲在模塊中

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

9、函數(shù)編寫指南:

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

Bug

1、Bug常見類型

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

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

解決方法:python提供異常處理機(jī)制,可以在異常出現(xiàn)時即時捕獲,然后內(nèi)部消化,讓程序繼續(xù)運行。例如:
1、try except結(jié)構(gòu)

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

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

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

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

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

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

在這里插入圖片描述

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

2、常見異常類型

在這里插入圖片描述

3、python異常處理機(jī)制

traceback模塊(打印異常信息)

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

pycharm開發(fā)環(huán)境的調(diào)試

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

編程思想

(1)兩種編程思想

在這里插入圖片描述

(2)類和對象的創(chuàng)建

1)類:多個類似事物組成的群體的統(tǒng)稱,能夠幫助我們快速理解和判斷事物的性質(zhì)。
2)對象:實例或?qū)ο螅梢允穷惖木唧w,python中一切皆對象。
3)創(chuàng)建:

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

到此這篇關(guān)于Python中關(guān)于元組 集合 字符串 函數(shù) 異常處理的全面詳解的文章就介紹到這了,更多相關(guān)Python 元組內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python3爬樓梯算法示例

    Python3爬樓梯算法示例

    這篇文章主要介紹了Python3爬樓梯算法,涉及Python基于面向?qū)ο蟮淖址闅v、切片、運算等相關(guān)操作技巧,需要的朋友可以參考下
    2019-03-03
  • Python 中使用 argparse 解析命令行參數(shù)

    Python 中使用 argparse 解析命令行參數(shù)

    這篇文章主要介紹了Python 中使用 argparse 解析命令行參數(shù),argparse 模塊是一個強(qiáng)大的命令行參數(shù)解析器,還有很多功能沒能在這里介紹。下面文化在哪個詳細(xì)介紹該內(nèi)容,需要的朋友可以參考一下
    2021-11-11
  • 深度辨析Python的eval()與exec()的方法

    深度辨析Python的eval()與exec()的方法

    這篇文章主要介紹了深度辨析Python的eval()與exec()的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-03-03
  • python 消除 futureWarning問題的解決

    python 消除 futureWarning問題的解決

    今天小編就為大家分享一篇python 消除 futureWarning問題的解決,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • python求解數(shù)組中兩個字符串的最小距離

    python求解數(shù)組中兩個字符串的最小距離

    這篇文章主要為大家詳細(xì)介紹了python求解數(shù)組中兩個字符串的最小距離,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • Python實現(xiàn)二叉排序樹與平衡二叉樹的示例代碼

    Python實現(xiàn)二叉排序樹與平衡二叉樹的示例代碼

    樹表查詢即借助具有特殊性質(zhì)的樹數(shù)據(jù)結(jié)構(gòu)進(jìn)行關(guān)鍵字查找,本文所涉及到的特殊結(jié)構(gòu)性質(zhì)的樹包括:二叉排序樹、平衡二叉樹。文中詳細(xì)介紹了二者的實現(xiàn)代碼,需要的可以參考一下
    2022-04-04
  • Python?time時間格式化和設(shè)置時區(qū)實現(xiàn)代碼詳解

    Python?time時間格式化和設(shè)置時區(qū)實現(xiàn)代碼詳解

    這篇文章主要介紹了Python?time時間格式化和設(shè)置時區(qū)實現(xiàn)代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值
    2023-02-02
  • 查看端口并殺進(jìn)程python腳本代碼

    查看端口并殺進(jìn)程python腳本代碼

    今天小編就為大家分享一篇查看端口并殺進(jìn)程python腳本代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • vue.js刷新當(dāng)前頁面的實例講解

    vue.js刷新當(dāng)前頁面的實例講解

    在本篇文章里小編給各位分享了一篇關(guān)于vue.js刷新當(dāng)前頁面的實例講解,有興趣的朋友們可以學(xué)習(xí)參考下。
    2020-12-12
  • python實現(xiàn)從一組顏色中找出與給定顏色最接近顏色的方法

    python實現(xiàn)從一組顏色中找出與給定顏色最接近顏色的方法

    這篇文章主要介紹了python實現(xiàn)從一組顏色中找出與給定顏色最接近顏色的方法,涉及Python操作rgb格式顏色的技巧,非常具有實用價值,需要的朋友可以參考下
    2015-03-03

最新評論