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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

一篇文章带你入门python基础开发

發(fā)布時間:2023/12/20 python 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一篇文章带你入门python基础开发 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、Python環(huán)境的安裝

1. 下載Python

  • 訪問Python官網(wǎng): https://www.python.org/
  • 點擊downloads按鈕,在下拉框中選擇系統(tǒng)類型(windows/Mac OS/Linux等)
  • 選擇下載最新版本的Python

2. 安裝Python

  • 雙擊下載好的Python安裝包

  • 勾選左下角Add Python 3.7 to PATH 選項,然后選擇Install now立刻安裝Python.

  • 默認安裝

  • 自定義安裝

  • 安裝完成

3. 測試是否安裝成功

  • 點擊電腦左下角開始按鈕,輸入cmd 進入到windows的命令行模式。

  • 在命令行中輸入Python,正確顯示Python版本,即表示Python安裝成功

  • 如果在命令行中輸入python出現(xiàn)如下錯誤

  • 可能是因為在安裝Python的過程中沒有勾選 Add Python 3.7 to PATH 選項,此時需要手動對Python進行配置。

4. 手動配置Python

  • 注意:如果在安裝過程中,已經(jīng)勾選了 Add Python 3.7 to PATH選項,并且在cmd 命令模式下輸入python指令

  • 不報錯,就不需要再手動的配置Python.

  • 右鍵此電腦 --> 選擇 屬性

  • 選擇高級系統(tǒng)設(shè)置–>環(huán)境變量–>找到并且雙擊Path

  • 雙擊Path,在彈框里點擊新建,找到Python的安裝目錄,把路徑添加進去

  • 這里新添加的路徑 E:\python 是Python安裝好以后,Python.exe 這個可執(zhí)行文件所在的目錄。

二、pip的使用

pip 是一個現(xiàn)代的,通用的Python包管理工具。提供了對 Python包的查找、下載、安裝、卸載的功能,便于我們對Python的資源包進行管理。

1. 安裝

  • 在安裝Python時,會自動下載并且安裝pip.

2. 配置

  • 在windows命令行里,輸入 pip -V 可以查看pip的版本。

  • 如果在命令行里,運行pip -V,出現(xiàn)如下提示:

    可能是因為在安裝python的過程中未勾選 Add Python 3.7 to PATH 選項,需要手動的配置pip的環(huán)境變量。

  • 右鍵此電腦–>環(huán)境變量–>找到并且雙擊Path–>在彈窗里點擊新建–>找到pip的安裝目錄,把路徑添加進去。
    -這里新添加的路徑 E:\python\Scripts 是Python安裝好以后,pip.exe 這個可執(zhí)行文件所在的目錄。

3. 使用pip管理Python包

  • pip install <包名> 安裝指定的包
  • pip uninstall <包名> 刪除指定的包
  • pip list 顯示已經(jīng)安裝的包
  • pip freeze 顯示已經(jīng)安裝的包,并且以指定的格式顯示

4. 修改pip下載源

  • 運行pip install 命令會從網(wǎng)站上下載指定的python包,默認是從 https://files.pythonhosted.org/ 網(wǎng)站上下載。這是個國外的網(wǎng)站,遇到網(wǎng)絡(luò)情況不好的時候,可能會下載失敗,我們可以通過命令,修改pip現(xiàn)在軟件時的源。 格式:
pip install 包名 - i 國內(nèi)源地址

示例:
pip install ipython -i https://pypi.mirrors.ustc.edu.cn/simple/ 就是從中國科技大學(xué)(ustc)的服務(wù)器上下載requests(基于python的第三方web框架)

國內(nèi)常用的pip下載源列表:

  • 阿里云 http://mirrors.aliyun.com/pypi/simple/
  • 中國科技大學(xué) https://pypi.mirrors.ustc.edu.cn/simple/
  • 豆瓣(douban) http://pypi.douban.com/simple/
  • 清華大學(xué) https://pypi.tuna.tsinghua.edu.cn/simple/
  • 中國科學(xué)技術(shù)大學(xué) http://pypi.mirrors.ustc.edu.cn/simple/

三、運行Python程序

1. 終端運行

  • 直接在python解釋器中書寫代碼
  • 退出python環(huán)境
exit() ctrl + z ==>enter

2. 使用ipython解釋器編寫代碼

  • 使用pip命令,可以快速的安裝IPython.
  • 運行python文件
pip install ipython
  • 使用python指令運行后綴為.py的python文件

3. Pycharm

  • 盡管上面介紹的方法已經(jīng)能夠提高我們的編碼速度,但是仍然無法應(yīng)對我們開發(fā)中更加復(fù)雜的要求。一般情況下,
  • 我們都需要借助工具來輔助我們快速的搭建環(huán)境,編寫代碼以及運行程序。
    IDE的概念

IDE(Integrated Development Environment)又被稱為集成開發(fā)環(huán)境。說白了,就是有一款圖形化界面的軟件,
它集成了編輯代碼,編譯代碼,分析代碼,執(zhí)行代碼以及調(diào)試代碼等功能。在我們Python開發(fā)中,最常用的IDE是Pycharm.

  • pycharm由捷克公司JetBrains開發(fā)的一款I(lǐng)DE,提供代碼分析、圖形化調(diào)試器,集成測試器、集成版本控制系統(tǒng)等,主要用來編寫Python代碼。
  • 下載地址:http://www.jetbrains.com/pycharm/download

Pycharm的安裝:

  • 雙擊安裝文件
  • 自定義安裝路徑(可以不用設(shè)置
  • 編輯設(shè)置(全部選中)

4. Pycharm的使用介紹

  • 運行Pycharm,選擇Create New Project,創(chuàng)建一個新的Python工程。

  • 選擇’Pure Python’創(chuàng)建一個新的純Python工程項目,Location表示該項目的保存路徑,Interpreter 用來指定Python解釋器的版本。

  • 右擊項目,選擇New,再選擇Python File

  • 在彈出的對話框中輸入的文件名HelloPython,點擊OK,表示創(chuàng)建一個Python程序的文本文件,文本文件后綴名默認.py

  • 在新建的 firstPythonDemo.py文件里,輸入以下代碼,并在空白處右鍵選擇Run運行,表示輸出python爬蟲字符串。

print('hello world')

四、Python

1 注釋

1.1 注釋介紹

  • 在我們工作編碼的過程中,如果一段代碼的邏輯比較復(fù)雜,不是特別容易理解,可以適當(dāng)?shù)奶砑幼⑨?#xff0c;以輔助自己或者其他編碼人員解讀代碼。

  • 注意:注釋是給程序員看的,為了讓程序員方便閱讀代碼,解釋器會忽略注釋。使用自己熟悉的語言,適當(dāng)?shù)膶Υa進行注釋說明是一種良好的編碼習(xí)慣。

1.2 注釋的分類

  • 在Python中支持單行注釋和多行注釋。
  • 單行注釋
    以#開頭,#右邊的所有東西當(dāng)做說明,而不是真正要執(zhí)行的程序,起輔助說明作用。
#開頭右邊的都是注釋,解析器會忽略注釋 print('hello world') #我的作用是在控制臺輸出hello world
  • 多行注釋
    以’‘‘開始,并以’’’ 結(jié)束,我們稱之為多行注釋。

2. 變量以及數(shù)據(jù)類型

2.1 變量的定義

思考下列代碼有什么問題?

  • 不使用變量打印九次 “今天天氣真好”,如果需要變成打印 “今天天氣不好” 需要修改九行代碼
weather = "今天天氣真好"print(weather) # 注意,變量名不需要使用引號包裹print(weather)print(weather)
  • 對于重復(fù)使用,并且經(jīng)常需要修改的數(shù)據(jù),可以定義為變量,來提高編程效率。
  • 定義變量的語法為: 變量名 = 變量值。(這里的 = 作用是賦值。)
  • 定義變量后可以使用變量名來訪問變量值。
  • -定義一個變量表示這個字符串。如果需要修改內(nèi)容,只需要修改變量對應(yīng)的值即可

說明:

  • 變量即是可以變化的量,可以隨時進行修改。
  • 程序就是用來處理數(shù)據(jù)的,而變量就是用來存儲數(shù)據(jù)的。

2.2 變量的類型

  • 程序中: 在 Python 里為了應(yīng)對不同的業(yè)務(wù)需求,也把數(shù)據(jù)分為不同的類型。 如下圖所示:

2.3 查看數(shù)據(jù)類型

  • 在python中,只要定義了一個變量,而且它有數(shù)據(jù),那么它的類型就已經(jīng)確定了,不需要咱們開發(fā)者主動的去說明它的類型,系統(tǒng)會自動辨別。也就是說在使用的時候 “變量沒有類型,數(shù)據(jù)才有類型”。

  • 比如下面的示例里,a 的類型可以根據(jù)數(shù)據(jù)來確認,但是我們沒法預(yù)測變量 b 的類型。

  • 如果臨時想要查看一個變量存儲的數(shù)據(jù)類型,可以使用 type(變量的名字),來查看變量存儲的數(shù)據(jù)類型。

3. 標(biāo)識符和關(guān)鍵字

  • 計算機編程語言中,標(biāo)識符是用戶編程時使用的名字,用于給變量、常量、函數(shù)、語句塊等命名,以建立起名稱與使用之間的關(guān)系。
  • 標(biāo)識符由字母、下劃線和數(shù)字組成,且數(shù)字不能開頭。
  • 嚴格區(qū)分大小寫。
  • 不能使用關(guān)鍵字。
  • 3.1 命名規(guī)范

    • 1、標(biāo)識符命名要做到顧名思義。

    起一個有意義的名字,盡量做到看一眼就知道是什么意思(提高代碼可 讀性) 比如: 名字 就定義為 name ,- 定義學(xué)生 用 student

    a = "zhangsan" # badname = "zhangsan" # goodb = 23 # badage = 23 # good
    • 2、遵守一定的命名規(guī)范。
      駝峰命名法,又分為大駝峰命名法和小駝峰命名法。

    • 小駝峰式命名法(lower camel case): 第一個單詞以小寫字母開始;第二個單詞的首字母大寫,

    例如:myName、aDog

    • 大駝峰式命名法(upper camel case): 每一個單字的首字母都采用大寫字母,例如:

    FirstName、LastName.

    • 還有一種命名法是用下劃線“_”來連接所有的單詞,比如send_buf.
    • Python的命令規(guī)則遵循PEP8標(biāo)準(zhǔn)

    3.2 關(guān)鍵字

    關(guān)鍵字的概念

    一些具有特殊功能的標(biāo)識符,這就是所謂的關(guān)鍵字。 關(guān)鍵字,已經(jīng)被python官方使用了,所以不允許開發(fā)者自己定義和關(guān)鍵字相同名字的標(biāo)識符。

    • 常見關(guān)鍵字
    False None True and as a ssert break class continue def del elif else except finally for from global if import in is lambda nonlocal not or pass raise return try while with yield

    4. 類型轉(zhuǎn)換

    print(int("123")) # 123 將字符串轉(zhuǎn)換成為整數(shù)print(int(123.78)) # 123 將浮點數(shù)轉(zhuǎn)換成為整數(shù)print(int(True)) # 1 布爾值True轉(zhuǎn)換成為整數(shù)是 1print(int(False)) # 0 布爾值False轉(zhuǎn)換成為整數(shù)是 0# 以下兩種情況將會轉(zhuǎn)換失敗 - '''123.456 和 12ab 字符串,都包含非法字符,不能被轉(zhuǎn)換成為整數(shù),會報錯print(int("123.456"))print(int("12ab"))'''f1 = float("12.34")print(f1) # 12.34print(type(f1)) # float 將字符串的 "12.34" 轉(zhuǎn)換成為浮點數(shù) 12.34f2 = float( 23 )print(f2) # 23.0print(type(f2)) # float 將整數(shù)轉(zhuǎn)換成為了浮點數(shù)str1 = str( 45 )str2 = str(34.56)str3 = str(True)print(type(str1),type(str2),type(str3))

    5. 運算符

    5.1 算數(shù)運算符

    下面以a=10 ,b=20為例進行計算

    • 注意:混合運算時,優(yōu)先級順序為: ** 高于 * / % // 高于 + - ,為了避免歧義,建議使用 () 來處理運

    • 算符優(yōu)先級。 并且,不同類型的數(shù)字在進行混合運算時,整數(shù)將會轉(zhuǎn)換成浮點數(shù)進行運算。

    • 如果是兩個字符串做加法運算,會直接把這兩個字符串拼接成一個字符串。

    • 如果是數(shù)字和字符串做加法運算,會直接報錯。

    • 如果是數(shù)字和字符串做乘法運算,會將這個字符串重復(fù)多次。

    5.2 賦值運算符


    5.3 復(fù)合賦值運算符


    5.4 比較運算符

    5.5 邏輯運算符

    6. 輸入輸出

    6.1 輸出

    • 普通輸出
      python中變量的輸出
    printf('hello world')
    • 格式化輸出


    6.2 輸入

    在Python中,獲取鍵盤輸入的數(shù)據(jù)的方法是采用 input 函數(shù)(至于什么是函數(shù),咱們以后的章節(jié)中講解),那么這個 input 怎么用呢?

    看如下示例:

    password = input("請輸入密碼:") print('您剛剛輸入的密碼是:%s' % password)

    注意:

    • input()的小括號中放入的是提示信息,用來在獲取數(shù)據(jù)之前給用戶的一個簡單提示
    • input()在從鍵盤獲取了數(shù)據(jù)以后,會存放到等號右邊的變量中
    • input()會把用戶輸入的任何值都作為字符串來對待

    7. 流程控制語句

    7.1 if判斷語句

    • if語句是用來進行判斷的,其使用格式如下:
    if 要判斷的條件: 條件成立時,要做的事情
    • demo1:
    age = 30 if age >= 18: print("我已經(jīng)成年了")
    • 運行結(jié)果:
    我已經(jīng)成年了
    • demo2:
    age = 16 if age >= 18: print("我已經(jīng)成年了")

    小總結(jié):

    • 以上 2 個demo僅僅是age變量的值不一樣,導(dǎo)致結(jié)果卻不同;能夠看得出if判斷語句的作用:就是當(dāng)滿足一定
    • 條件時才會執(zhí)行代碼塊語句,否則就不執(zhí)行代碼塊語句。
    • 注意:代碼的縮進為一個tab鍵,或者 4 個空格

    7.2 if else

    • 想一想:在使用if的時候,它只能做到滿足條件時要做的事情。那萬一需要在不滿足條件的時候,做某些事,該怎么辦呢?
    • 答:使用 if-else
    • if-else的使用格式
    if 條件: 滿足條件時的操作 else: 不滿足條件時的操作
    • demo1
    age = 18 if age >= 18: print("我可以去紅浪漫了") else: print("未成年,不允許去")
    • 結(jié)果 1 :大于等于 18 的情況
    • 結(jié)果 2 :小于 18 的情況

    7.3 elif

    if 條件: 滿足條件時的操作 else: 不滿足條件時的操作
    • 想一想:
    • 如果有這樣一種情況:當(dāng)條件A滿足時做事情 1 ;當(dāng)條件A不滿足、條件B滿足時做事情 2 ;當(dāng)條件B不滿 足、條件C滿足時做事情 3 ,那該怎么實現(xiàn)呢?
    • 答: elif

    elif的功能

    • elif的使用格式如下:
    if xxx1: 事情1 elif xxx2: 事情2 elif xxx3: 事情3

    說明:

    • 當(dāng)xxx1滿足時,執(zhí)行事情 1 ,然后整個if結(jié)束
    • 當(dāng)xxx1不滿足時,那么判斷xxx2,如果xxx2滿足,則執(zhí)行事情 2 ,然后整個if結(jié)束
    • 當(dāng)xxx1不滿足時,xxx2也不滿足,如果xxx3滿足,則執(zhí)行事情 3 ,然后整個if結(jié)束
    • demo:
    score = 77 if score>=90: print('本次考試,等級為A') elif score>=80: print('本次考試,等級為B') elif score>=70: print('本次考試,等級為C') elif score>=60: print('本次考試,等級為D') elif score<60: print('本次考試,等級為E')

    7.4 for

    • 在Python中 for循環(huán)可以遍歷任何序列的項目,如一個列表或者一個字符串等。

    for循環(huán)的格式

    for 臨時變量 in 列表或者字符串等可迭代對象: 循環(huán)滿足條件時執(zhí)行的代碼

    for循環(huán)的使用

    • 遍歷字符串:
    for s in "hello": print(s)
    • 輸出結(jié)果:
    hello
    • 打印數(shù)字
    for i in range(5): print(i)
    • 輸出結(jié)果:
    • 0
    • 1
    • 2
    • 3
    • 4

    7.5 range

    • range 可以生成數(shù)字供 for 循環(huán)遍歷,它可以傳遞三個參數(shù),分別表示 起始、結(jié)束和步長。
    >>> range(2, 10, 3) [2, 5, 8] >>> for x in range(2, 10, 3): ... print(x) ... 2 5 8

    8. 數(shù)據(jù)類型高級

    8.1 字符串高級

    字符串的常見操作包括:

    • 獲取長度:len len函數(shù)可以獲取字符串的長度。

    • 查找內(nèi)容:find 查找指定內(nèi)容在字符串中是否存在,如果存在就返回該內(nèi)容在字符串中第一次出現(xiàn)的開始位置索引值,如果不存在,則返回-1.

    • 判斷:startswith,endswith 判斷字符串是不是以誰誰誰開頭/結(jié)尾

    • 計算出現(xiàn)次數(shù):count 返回 str在start和end之間 在 mystr里面出現(xiàn)的次數(shù)

    • 替換內(nèi)容:replace 替換字符串中指定的內(nèi)容,如果指定次數(shù)count,則替換不會超過count次。

    • 切割字符串:split 通過參數(shù)的內(nèi)容切割字符串

    • 修改大小寫:upper,lower 將字符串中的大小寫互換

    • 空格處理:strip 去空格

    • 字符串拼接:join 字符串拼接

    8.2 列表高級

    列表的增刪改查

    • 添加元素
      添加元素有一下幾個方法:
      • append 在末尾添加元素
      • insert 在指定位置插入元素
      • extend 合并兩個列表
    • append
      append會把新元素添加到列表末尾
    #定義變量A,默認有3個元素 A = ['xiaoWang','xiaoZhang','xiaoHua'] print("‐‐‐‐‐添加之前,列表A的數(shù)據(jù)‐‐‐‐‐A=%s" % A) #提示、并添加元素 temp = input('請輸入要添加的學(xué)生姓名:') A.append(temp) print("‐‐‐‐‐添加之后,列表A的數(shù)據(jù)‐‐‐‐‐A=%s" % A)
    • insert
      insert(index, object) 在指定位置index前插入元素object
    strs = ['a','b','m','s'] strs.insert(3,'h') print(strs) # ['a', 'b', 'm', 'h', 's']
    • extend
      通過extend可以將另一個列表中的元素逐一添加到列表中
    a = ['a','b','c'] b = ['d','e','f'] a.extend(b) print(a) # ['a', 'b', 'c', 'd', 'e', 'f'] 將 b 添加到 a 里 print(b) # ['d','e','f'] b的內(nèi)容不變
    • 修改元素
      我們是通過指定下標(biāo)來訪問列表元素,因此修改元素的時候,為指定的列表下標(biāo)賦值即可。
    定義變量A,默認有3個元素 A = ['xiaoWang','xiaoZhang','xiaoHua'] print("‐‐‐‐‐修改之前,列表A的數(shù)據(jù)‐‐‐‐‐A=%s" % A) #修改元素 A[1] = 'xiaoLu' print("‐‐‐‐‐修改之后,列表A的數(shù)據(jù)‐‐‐‐‐A=%s" % A)
    • 查找元素
    • 所謂的查找,就是看看指定的元素是否存在,主要包含一下幾個方法:
    • in 和 not in

    python中查找的常用方法為:

    • in(存在),如果存在那么結(jié)果為true,否則為false
    • not in(不存在),如果不存在那么結(jié)果為true,否則false
    #待查找的列表 nameList = ['xiaoWang','xiaoZhang','xiaoHua'] #獲取用戶要查找的名字 findName = input('請輸入要查找的姓名:') #查找是否存在 if findName in nameList: print('在列表中找到了相同的名字') else: print('沒有找到')

    說明:

    • in的方法只要會用了,那么not in也是同樣的用法,只不過not in判斷的是不存在
    • 刪除元素
    • 類比現(xiàn)實生活中,如果某位同學(xué)調(diào)班了,那么就應(yīng)該把這個條走后的學(xué)生的姓名刪除掉;在開發(fā)中經(jīng)常會用到刪除這種功能。

    列表元素的常用刪除方法有:

    • del:根據(jù)下標(biāo)進行刪除
    • pop:刪除最后一個元素
    • remove:根據(jù)元素的值進行刪除
      del
    movieName = ['加勒比海盜','駭客帝國','第一滴血','指環(huán)王','霍比特人','速度與激情'] print('‐‐‐‐‐‐刪除之前‐‐‐‐‐‐movieName=%s' % movieName) del movieName[2] print('‐‐‐‐‐‐刪除之后‐‐‐‐‐‐movieName=%s' % movieName)
    • pop
    movieName = ['加勒比海盜','駭客帝國','第一滴血','指環(huán)王','霍比特人','速度與激情'] print('‐‐‐‐‐‐刪除之前‐‐‐‐‐‐movieName=%s' % movieName) movieName.pop() print('‐‐‐‐‐‐刪除之后‐‐‐‐‐‐movieName=%s' % movieName)
    • remove
    movieName = ['加勒比海盜','駭客帝國','第一滴血','指環(huán)王','霍比特人','速度與激情'] print('‐‐‐‐‐‐刪除之前‐‐‐‐‐‐movieName=%s' % movieName) movieName.remove('指環(huán)王') print('‐‐‐‐‐‐刪除之后‐‐‐‐‐‐movieName=%s' % movieName)

    8.3 元組高級

    • Python的元組與列表類似,不同之處在于元組的元素不能修改。元組使用小括號,列表使用方括號。
    • 訪問元組

    • 修改元組

    • python中不允許修改元組的數(shù)據(jù),包括不能刪除其中的元素。

    • 定義只有一個元素的元組,需要在唯一的元素后寫一個逗號

    >>> a = (11) >>> a 11 >>> type(a) int >>> a = (11,) # 只有一個元素的元組,必須要在元素后寫一個逗號 >>> a (11,) >>> type(a) tuple

    8.4 切片

    • 切片是指對操作的對象截取其中一部分的操作。字符串、列表、元組都支持切片操作。
    • 切片的語法:[起始:結(jié)束:步長],也可以簡化使用 [起始:結(jié)束]
    • 注意:選取的區(qū)間從"起始"位開始,到"結(jié)束"位的前一位結(jié)束(不包含結(jié)束位本身),步長表示選取間隔。
    # 索引是通過下標(biāo)取某一個元素 # 切片是通過下標(biāo)去某一段元素 s = 'Hello World!' print(s) print(s[4]) # o 字符串里的第4個元素 print(s[3:7]) # lo W 包含下標(biāo) 3,不含下標(biāo) 7 print(s[1:]) # ello World! 從下標(biāo)為1開始,取出 后面所有的元素(沒有結(jié)束位) print(s[:4]) # Hell 從起始位置開始,取到 下標(biāo)為4的前一個元素(不包括結(jié)束位本身) print(s[1:5:2]) # el 從下標(biāo)為1開始,取到下標(biāo)為5的前一個元素,步長為2(不包括結(jié)束位本身)

    8.5 字典高級

    • 查看元素
      除了使用key查找數(shù)據(jù),還可以使用get來獲取數(shù)據(jù)
    info = {'name':'班長','age':18} print(info['age']) # 獲取年齡 # print(info['sex']) # 獲取不存在的key,會發(fā)生異常 print(info.get('sex')) # 獲取不存在的key,獲取到空的內(nèi)容,不會出現(xiàn)異常 print(info.get('sex', '男')) # 獲取不存在的key, 可以提供一個默認值。
    • 修改元素
      字典的每個元素中的數(shù)據(jù)是可以修改的,只要通過key找到,即可修改
    info = {'name':'班長', 'id':100} print('修改之前的字典為 %s:' % info) info['id'] = 200 # 為已存在的鍵賦值就是修改 print('修改之后的字典為 %s:' % info)

    結(jié)果:

    修改之前的字典為 {'name': '班長', 'id': 100} 修改之后的字典為 {'name': '班長', 'id': 200}
    • 添加元素
      如果在使用 變量名[‘鍵’] = 數(shù)據(jù) 時,這個“鍵”在字典中,不存在,那么就會新增這個元素
    • demo:添加新的元素
    info = {'name':'班長'} print('添加之前的字典為:%s' % info) info['id'] = 100 # 為不存在的鍵賦值就是添加元素 print('添加之后的字典為:%s' % info)
    • 結(jié)果:

      添加之前的字典為:{‘name’: ‘班長’}
      添加之后的字典為:{‘name’: ‘班長’, ‘id’: 100}

    • 刪除元素
      對字典進行刪除操作,有一下幾種:

    • del

    • clear()
      demo:del刪除指定的元素

    info = {'name':'班長', 'id':100} print('刪除前,%s' % info) del info['name'] # del 可以通過鍵刪除字典里的指定元素 print('刪除后,%s' % info)
    • 結(jié)果

    刪除前,{‘name’: ‘班長’, ‘id’: 100}
    刪除后,{‘id’: 100}

    • del刪除整個字典
    info = {'name':'monitor', 'id':100} print('刪除前,%s'%info) del info # del 也可以直接刪除變量 print('刪除后,%s'%info)
    • 結(jié)果

    刪除前,{‘name’: ‘monitor’, ‘id’: 100}
    Traceback (most recent call last):
    File “”, line 1, in
    NameError: name ‘info’ is not defined

    • clear清空整個字典
    info = {'name':'monitor', 'id':100} print('清空前,%s'%info) info.clear() print('清空后,%s'%info)
    • 結(jié)果
    • 字典的遍歷

    9. 函數(shù)

    • 思考:下列代碼的問題
    print('歡迎馬大哥光臨紅浪漫')print('男賓 2 位')print('歡迎馬大哥光臨紅浪漫')print('男賓 2 位')print('歡迎馬大哥光臨紅浪漫')print('男賓 2 位')print('歡迎馬大哥光臨紅浪漫')print('男賓 2 位')

    9.1 定義函數(shù)

    • 定義函數(shù)的格式如下:
    def 函數(shù)名(): 代碼
    • 示例:
    # 定義一個函數(shù),能夠完成打印信息的功能 def f1(): print('歡迎馬大哥光臨紅浪漫') print('男賓2位')

    9.2 調(diào)用函數(shù)

    • 定義了函數(shù)之后,就相當(dāng)于有了一個具有某些功能的代碼,想要讓這些代碼能夠執(zhí)行,需要調(diào)用它
    • 調(diào)用函數(shù)很簡單的,通過 函數(shù)名() 即可完成調(diào)用
    • 函數(shù)定義好以后,函數(shù)體里的代碼并不會執(zhí)行,如果想要執(zhí)行函數(shù)體里的內(nèi)容,需要手動的調(diào)用函數(shù)。
    • 每次調(diào)用函數(shù)時,函數(shù)都會從頭開始執(zhí)行,當(dāng)這個函數(shù)中的代碼執(zhí)行完畢后,意味著調(diào)用結(jié)束了。

    9.3 函數(shù)參數(shù)

    • 思考一個問題,如下:
    • 現(xiàn)在需要定義一個函數(shù),這個函數(shù)能夠完成 2 個數(shù)的加法運算,并且把結(jié)果打印出來,該怎樣設(shè)計?下面的代- 碼可以嗎?有什么缺陷嗎?
    def add2num(): a = 11 b = 22 c = a+b print(c)
    • 為了讓一個函數(shù)更通用,即想讓它計算哪兩個數(shù)的和,就讓它計算哪兩個數(shù)的和,在定義函數(shù)的時候可以讓函數(shù)接收數(shù)據(jù),就解決了這個問題,這就是 函數(shù)的參數(shù)
    • 定義、調(diào)用帶有參數(shù)的函數(shù)
      定義一個add2num(a, b)函數(shù),來計算任意兩個數(shù)字之和:
    def add2num(a, b): c = a+b print c add2num(11, 22) # 調(diào)用帶有參數(shù)的函數(shù)時,需要在小括號中,傳遞數(shù)據(jù)
    • 注意點:
    • 在定義函數(shù)的時候,小括號里寫等待賦值的變量名
    • 在調(diào)用函數(shù)的時候,小括號里寫真正要進行運算的數(shù)據(jù)
    • 調(diào)用帶有參數(shù)函數(shù)的運行過程:
    • 調(diào)用函數(shù)時參數(shù)的順序
    • 定義時小括號中的參數(shù),用來接收參數(shù)用的,稱為 “形參”
    • 調(diào)用時小括號中的參數(shù),用來傳遞給函數(shù)用的,稱為 “實參”

    9.4 函數(shù)返回值

    • “返回值”介紹

    • 現(xiàn)實生活中的場景:

    • 我給女兒 10 塊錢,讓她給我買個冰淇淋。這個例子中, 10 塊錢是我給女兒的,就相當(dāng)于調(diào)用函數(shù)時傳遞到參數(shù),讓女兒買冰淇淋這個事情最終的目標(biāo),我需要讓她把冰淇淋帶回來,此時冰淇淋就是返回值

    • 綜上所述:
      所謂“返回值”,就是程序中函數(shù)完成一件事情后,最后給調(diào)用者的結(jié)果
    • 帶有返回值的函數(shù)
      想要在函數(shù)中把結(jié)果返回給調(diào)用者,需要在函數(shù)中使用return
    • 如下示例:
    def add2num(a, b): c = a+b return c # return 后可以寫變量名
    • 或者
    def add2num(a, b): return a+b # return 后可以寫計算表達式

    9.5 局部變量

    • 什么是局部變量
      如下圖所示:

    • 局部變量,就是在函數(shù)內(nèi)部定義的變量

    • 其作用范圍是這個函數(shù)內(nèi)部,即只能在這個函數(shù)中使用,在函數(shù)的外部是不能使用的

    9.6 全局變量

    • 如果一個變量,既能在一個函數(shù)中使用,也能在其他的函數(shù)中使用,這樣的變量就是全局變量
    # 定義全局變量 a = 100 def test1(): print(a) # 雖然沒有定義變量a但是依然可以獲取其數(shù)據(jù) def test2(): print(a) # 雖然沒有定義變量a但是依然可以獲取其數(shù)據(jù) # 調(diào)用函數(shù) test1() test2()
    • 在函數(shù)外邊定義的變量叫做全局變量
    • 全局變量能夠在所有的函數(shù)中進行訪問

    10. 文件

    10.1 文件的打開與關(guān)閉

    • 打開文件/創(chuàng)建文件
    • 在python,使用open函數(shù),可以打開一個已經(jīng)存在的文件,或者創(chuàng)建一個新文件

    open(文件路徑,訪問模式)

    • 示例如下:
    f = open('test.txt', 'w')
    • 說明:

    • 關(guān)閉文件
    # 新建一個文件,文件名為:test.txt f = open('test.txt', 'w') # 關(guān)閉這個文件 f.close()

    10.2 文件的讀寫

    • 寫數(shù)據(jù)(write)
    • 使用write()可以完成向文件寫入數(shù)據(jù)
    • demo: 新建一個文件 file_write_test.py,向其中寫入如下代碼:
    f = open('test.txt', 'w') f.write('hello world, i am here!\n' * 5) f.close()
    • 運行之后會在file_write_test.py文件所在的路徑中創(chuàng)建一個文件test.txt,并寫入內(nèi)容,運行效果顯示如下:

    • 注意:

    • 如果文件不存在,那么創(chuàng)建;如果存在那么就先清空,然后寫入數(shù)據(jù)

    讀數(shù)據(jù)(read)

    • 使用read(num)可以從文件中讀取數(shù)據(jù),num表示要從文件中讀取的數(shù)據(jù)的長度(單位是字節(jié)),如果沒有傳入num,那么就表示讀取文件中所有的數(shù)據(jù)
    • demo: 新建一個文件file_read_test.py,向其中寫入如下代碼:
    f = open('test.txt', 'r') content = f.read(5) # 最多讀取5個數(shù)據(jù) print(content) print("‐"*30) # 分割線,用來測試 content = f.read() # 從上次讀取的位置繼續(xù)讀取剩下的所有的數(shù)據(jù) print(content) f.close() # 關(guān)閉文件,這個可是個好習(xí)慣哦
    • 運行現(xiàn)象:
    hello ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ world, i am here!

    注意:

    • 如果用open打開文件時,如果使用的"r",那么可以省略 open(‘test.txt’)

    讀數(shù)據(jù)(readline)

    • readline只用來讀取一行數(shù)據(jù)。
    f = open('test.txt', 'r') content = f.readline() print("1:%s" % content) content = f.readline() print("2:%s" % content) f.close()

    讀數(shù)據(jù)(readlines)

    • readlines可以按照行的方式把整個文件中的內(nèi)容進行一次性讀取,并且返回的是一個列表,其中每一行為列表的 一個元素。
    f = open('test.txt', 'r') content = f.readlines() print(type(content)) for temp in content: print(temp) f.close()

    10.3 序列化和反序列化

    • 通過文件操作,我們可以將字符串寫入到一個本地文件。但是,如果是一個對象(例如列表、字典、元組等),就無
    • 法直接寫入到一個文件里,需要對這個對象進行序列化,然后才能寫入到文件里。
    • 設(shè)計一套協(xié)議,按照某種規(guī)則,把內(nèi)存中的數(shù)據(jù)轉(zhuǎn)換為字節(jié)序列,保存到文件,這就是序列化,反之,從文件的字 節(jié)序列恢復(fù)到內(nèi)存中,就是反序列化。
    • 對象—》字節(jié)序列 === 序列化
    • 字節(jié)序列–》對象 ===反序列化

    Python中提供了JSON這個模塊用來實現(xiàn)數(shù)據(jù)的序列化和反序列化。

    JSON模塊

    • JSON(JavaScriptObjectNotation, JS對象簡譜)是一種輕量級的數(shù)據(jù)交換標(biāo)準(zhǔn)。JSON的本質(zhì)是字符串。
    • 使用JSON實現(xiàn)序列化
      JSON提供了dump和dumps方法,將一個對象進行序列化。
    • dumps方法的作用是把對象轉(zhuǎn)換成為字符串,它本身不具備將數(shù)據(jù)寫入到文件的功能。
    import json file = open('names.txt', 'w') names = ['zhangsan', 'lisi', 'wangwu', 'jerry', 'henry', 'merry', 'chris'] # file.write(names) 出錯,不能直接將列表寫入到文件里 # 可以調(diào)用 json的dumps方法,傳入一個對象參數(shù) result = json.dumps(names) # dumps 方法得到的結(jié)果是一個字符串 print(type(result)) # <class 'str'> # 可以將字符串寫入到文件里 file.write(result) file.close()
    • dump方法可以在將對象轉(zhuǎn)換成為字符串的同時,指定一個文件對象,把轉(zhuǎn)換后的字符串寫入到這個文件里。
    import json file = open('names.txt', 'w') names = ['zhangsan', 'lisi', 'wangwu', 'jerry', 'henry', 'merry', 'chris'] # dump方法可以接收一個文件參數(shù),在將對象轉(zhuǎn)換成為字符串的同時寫入到文件里 json.dump(names, file) file.close()

    使用JSON實現(xiàn)反序列化

    • 使用loads和load方法,可以將一個JSON字符串反序列化成為一個Python對象。
    • loads方法需要一個字符串參數(shù),用來將一個字符串加載成為Python對象。
    import json # 調(diào)用loads方法,傳入一個字符串,可以將這個字符串加載成為Python對象 result = json.loads('["zhangsan", "lisi", "wangwu", "jerry", "henry", "merry", "chris"]') print(type(result)) # <class 'list'>
    • load方法可以傳入一個文件對象,用來將一個文件對象里的數(shù)據(jù)加載成為Python對象。
    import json # 以可讀方式打開一個文件 file = open('names.txt', 'r') # 調(diào)用load方法,將文件里的內(nèi)容加載成為一個Python對象 result = json.load(file) print(result) file.close()

    11. 異常

    • 程序在運行過程中,由于我們的編碼不規(guī)范,或者其他原因一些客觀原因,導(dǎo)致我們的程序無法繼續(xù)運行,此時,程序就會出現(xiàn)異常。如果我們不對異常進行處理,程序可能會由于異常直接中斷掉。為了保證程序的健壯性,我們
      在程序設(shè)計里提出了異常處理這個概念。

    11.1 讀取文件異常

    • 在讀取一個文件時,如果這個文件不存在,則會報出FileNotFoundError錯誤。

    11.2 try…except語句

    • try…except語句可以對代碼運行過程中可能出現(xiàn)的異常進行處理。 語法結(jié)構(gòu):
    try: 可能會出現(xiàn)異常的代碼塊 except 異常的類型: 出現(xiàn)異常以后的處理語句
    • 示例:
    try: f = open('test.txt', 'r') print(f.read()) except FileNotFoundError: print('文件沒有找到,請檢查文件名稱是否正確')

    參考資料:

    尚硅谷Python爬蟲教程小白零基礎(chǔ)速通(含python基礎(chǔ)+爬蟲案例)

    總結(jié)

    以上是生活随笔為你收集整理的一篇文章带你入门python基础开发的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。