最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python核心語(yǔ)法與常用庫(kù)完全學(xué)習(xí)指南

 更新時(shí)間:2026年01月27日 10:07:39   作者:say_fall  
這篇文章主要介紹了Python核心語(yǔ)法與常用庫(kù)完全學(xué)習(xí)的相關(guān)資料,包括數(shù)據(jù)類(lèi)型、字符串操作、文件讀寫(xiě)、正則表達(dá)式以及常用庫(kù)如NumPy、matplotlib、scipy、sympy的實(shí)戰(zhàn)用法,需要的朋友可以參考下

前言:

本文圍繞 Python 核心知識(shí)點(diǎn)展開(kāi),從基礎(chǔ)數(shù)據(jù)類(lèi)型(列表、元組、字典等)、字符串操作、文件讀寫(xiě),到正則表達(dá)式的靈活運(yùn)用,再到 NumPy、matplotlib、scipy、sympy 等常用庫(kù)的實(shí)戰(zhàn)用法,進(jìn)行了全面且細(xì)致的整理。**

雜知識(shí)點(diǎn)

#input 函數(shù):等待屏幕輸入,回車(chē)后可以將輸入內(nèi)容輸出到屏幕上
#user_input = input("請(qǐng)輸入內(nèi)容:")
#print("你輸入的是:", user_input)

#import math as mt         #導(dǎo)入math并簡(jiǎn)寫(xiě)為別名mt
#lambda函數(shù) lambda x:x % 3
func = lambda x: x % 3
print(func(7))  # 測(cè)試lambda函數(shù)

列表

列表方法: .index()[索引],.append()[追加],.insert()[插入 ],.remove()[刪除],.pop()[彈出],.sort()[排序]

內(nèi)置函數(shù):zip(),enumerate()

x = [1,2,3]                 #定義的方式
y = [21,22,23]
zip(x,y)                   #把xy列表進(jìn)行配對(duì),操作后變成了python的內(nèi)置類(lèi)型
list1 = list(zip(x,y))             #輸出配對(duì)后的結(jié)果,可以表示坐標(biāo)位置
print(list1)

元組

tuple1 = (1,2,3)        #用圓括號(hào)定義且不能更改
print(tuple1[1])        #取元素方法和列表相同
x,y,z = tuple1          #把元組中的元素分別賦值給變量x y z
print(x,y,z)            #可以直接把數(shù)據(jù)賦值給變量

字典

my_cat = {'size': 'fat', 'color': 'gray', 'name': 'Tom'}      #字典用花括號(hào)和冒號(hào)進(jìn)行定義,每個(gè)鍵與一個(gè)值關(guān)聯(lián)形成鍵值對(duì)
print(my_cat)       #可以直接打印出來(lái)字典內(nèi)容
print(my_cat['color'])      #也可以通過(guò)鍵取值
my_cat['age'] = 2           #添加或者修改鍵值對(duì)   在my_cat這個(gè)字典中再加入一個(gè)鍵age,對(duì)應(yīng)的值為2(存在則為修改)
print(my_cat)
spam = ['cats', 'dogs', 'moose']        #列表1
bacon = ['dogs', 'moose', 'cats']       #列表2
print(spam == bacon)

eggs = {'name': 'Zophie', 'species': 'cat', 'age': '8'}     #字典1
ham = {'species': 'cat', 'age': '8', 'name': 'Zophie'}      #字典2
print(eggs == ham)          #對(duì)于相同數(shù)據(jù)但順序不同的內(nèi)容,列表有序,字典無(wú)序

字典方法: .values()[遍歷所有值], .keys()[遍歷字典中的所有鍵], .items()[遍歷字典中的所有鍵值對(duì)], .get()[訪(fǎng)問(wèn)值], .setdefault()[不存在添加,存在無(wú)行為],

spam = {'color': 'red', 'age': 42}

for v in spam.values():        #遍歷字典中的所有值
    print(v)

for k in spam.keys():          #遍歷字典中的所有鍵
    print(k)

for i in spam.items():          #遍歷字典中的所有鍵值對(duì)
    print(i)

for k, v in spam.items():           #遍歷字典中的所有鍵值對(duì) ,k對(duì)應(yīng)鍵,v對(duì)應(yīng)值
    print('Key: ' + k + ' Value: ' + str(v))                 #把每一對(duì)元素輸出

spam = {'name': 'Pooka', 'age': 5}
spam.setdefault('color', 'black')                                         #如果此字典中不存在這個(gè)鍵值對(duì),則把這個(gè)鍵值對(duì)加入到字典中
print(spam)

spam.setdefault('color', 'white')                                         #如果此字典中存在這個(gè)鍵,重新定義不會(huì)將這個(gè)值定義給鍵
print(spam)

#計(jì)算一個(gè)字符串中每個(gè)字符出現(xiàn)的次數(shù)
message = 'It was a bright cold day in April, and the clocks were striking thirteen.'              #輸出提示信息
count = {}                                                                                         #定義一個(gè)空字典count
for character in message:                                                                         #對(duì)message中的每一個(gè)字符進(jìn)行循環(huán)
    count.setdefault(character, 0)                                                                 #將未出現(xiàn)字母添加進(jìn)字典
    count[character] += 1           #count[character]為當(dāng)前字母的計(jì)數(shù)+1
print(count)

集合

集合具有互異性、無(wú)序性,所以可以用來(lái)去除重復(fù)

字符串

x = 'Hello'                 #字符串
list_x = list(x)
print(list_x)           #可以通過(guò)list()、str()相互轉(zhuǎn)換

print("hello %d" % 3)       #使用占位符打印
print("Pi is <%-6.2f>" % 3.14159)  #- :左對(duì)齊,6:占6個(gè)位置 2:小數(shù)點(diǎn)后兩位,f:按照浮點(diǎn)型
# 兩位的話(huà),需要組成元組傳參:print("<%.6f><%.6f>" % (3.144444444, 5.22222221))

字符串方法

print(' '.join(['Separated', 'by', 'nothing']))      #"".join()   用''內(nèi)字符連接列表元素
print("join puts spaces between elements".split(" "))  #"".split(" ")    [以' '內(nèi)為界限分解字符串]
print(" Hello, World ".strip(' d'))               #strip:把字符串左右兩側(cè)的指定字符去掉
print(" Hello, World ".lstrip('H ') )             #lstrip:把字符串左側(cè)的指定字符去掉
print(" Hello, World ".rstrip())              #rstrip:把字符串右側(cè)的空白字符去掉

定位.?nd() .rfind() .startswith() .endswith()

x = "Mississippi"
new_x = x.replace("ss","+++")           #把字符串中的ss替換成+++
print(new_x)
### 大小寫(xiě)轉(zhuǎn)換.upper() .lower()
print(x.upper())
print(x.lower())

庫(kù)

NumPy庫(kù)

import numpy as np
a = np.array([0, 1, 2, 3])
print(a)
print(a.ndim)               # 維數(shù)
print(a.shape)              # 行列數(shù)
print(np.random.rand(4,4))  # 生成隨機(jī)矩陣
print(np.flip(a))           # 反轉(zhuǎn)數(shù)組
b = np.array([1, 2, 3, 4])
print(np.dot(a, b))         # .dot()計(jì)算向量點(diǎn)積(矩陣乘積)

matplotlib庫(kù)

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['Microsoft Yahei']   # 字體使用微軟雅黑
X = np.linspace(-np.pi, np.pi, 256)           # 生成等間距的數(shù)值點(diǎn)
C = np.cos(X)                                      # 計(jì)算余弦值
plt.figure(figsize=(8, 6), dpi=80)                 # 設(shè)置畫(huà)布大小和分辨率
plt.plot(X, C, color="blue", linewidth=2.5, linestyle="-", label="cosine")  # 繪制余弦曲線(xiàn)
# 繪圖參數(shù):x軸數(shù)據(jù), y軸數(shù)據(jù), 顏色, 線(xiàn)寬, 線(xiàn)型, 圖例標(biāo)簽
plt.xlabel('X', fontsize=12)  # x軸標(biāo)簽
plt.ylabel('Y', fontsize=12)  # y軸標(biāo)簽
plt.title('余弦函數(shù)圖像', fontsize=14)# 圖表標(biāo)題
plt.legend(loc='upper left')                       # 顯示圖例,位置左上角
plt.scatter(X, C, s=5, color="red")               # 繪制散點(diǎn)圖(添加size和color參數(shù)更清晰)
plt.show()                                         # 展示圖像

scipy庫(kù)

import scipy.integrate    #調(diào)用積分函數(shù)庫(kù) 數(shù)值積分 integrate
res, err = scipy.integrate.quad(np.sin, 0, 2*np.pi)             # 計(jì)算定積分,前一個(gè)參數(shù)是結(jié)果,后一個(gè)參數(shù)是誤差
print(f'<{res:.6f}>,<{err:.6f}>')               # 格式化輸出結(jié)果和誤差

import scipy.linalg
arr = np.array([[1,2],[2,3]])
iarr = scipy.linalg.inv(arr)       #linalg.inv()計(jì)算矩陣的逆矩陣
print("原矩陣:\n", arr)
print("逆矩陣:\n", iarr)

sympy庫(kù)

import sympy as sym             # 導(dǎo)入符號(hào)運(yùn)算的庫(kù)sym
sym.init_printing()             # 讓函數(shù)以公式的形式輸出
a = sym.Rational(1, 2)    # 定義有理數(shù)1/2
print("有理數(shù)1/2:", a)

x = sym.Symbol('x')              # 定義x為符號(hào)
y = sym.Symbol('y')              # 補(bǔ)充定義y為符號(hào)(避免未定義報(bào)錯(cuò))
expand_res = sym.expand((x + y) ** 3)        # 進(jìn)行符號(hào)運(yùn)算(展開(kāi))
print("(x+y)^3展開(kāi):", expand_res)

simplify_res = sym.simplify(x**3 + 3*x**2*y + 3*x*y**2 + y**3)     # 化簡(jiǎn)運(yùn)算
print("多項(xiàng)式化簡(jiǎn):", simplify_res)

limit_res = sym.limit(sym.sin(x) / x, x, 0)   #進(jìn)行求極限運(yùn)算
print("sin(x)/x在x→0的極限:", limit_res)

diff_res = sym.diff(sym.sin(x), x)   #對(duì)sinx求導(dǎo)數(shù)
print("sin(x)的導(dǎo)數(shù):", diff_res)

文件操作:

  • 'w’為覆蓋寫(xiě)入,'a’為追加寫(xiě)入,'r’為讀取文件
### 寫(xiě)入文件
data = [[1,2],[3,4]]
with open('D:/計(jì)算機(jī)科學(xué)與技術(shù)/python_2025秋季學(xué)期/table.txt', 'w') as f:
    f.write('            col 1         col 2\n')  # 列標(biāo)簽
    for i, row in enumerate(data, 1):           # 循環(huán)行元素
        f.write(f'row {i:2d}')  # 行標(biāo)簽(2位寬)
        for val in row:                         # 循環(huán)列元素
            f.write('%14.8f' % val)
        f.write('\n')

### 讀取文件
with open('D:/計(jì)算機(jī)科學(xué)與技術(shù)/python_2025秋季學(xué)期/table.txt', 'r') as f:
    line = f.read()              # 讀取文件賦值給line
    f.seek(0)                    # 重置指針到文件開(kāi)頭
    lines = f.readlines()        # 讀取文件中的每一行,作為列表給出來(lái),一行是一個(gè)元素
    print(line)
    print(lines)

正則匹配

import re         #導(dǎo)入庫(kù)
phone_num_regex = re.compile(r'\d\d\d-\d\d\d\d\d\d\d') # r可以將該字符串標(biāo)記為原始字符串,compile()創(chuàng)建Pattern對(duì)象 
mo = phone_num_regex.search('My number is 415-5554242.415-5554241')     # search():查找字符串中第一次匹配的內(nèi)容
print(mo.group())                              # group():提取匹配文本

phone_num_regex_1 = re.compile(r'(\d\d\d)-(\d\d\d\d\d\d\d)')          # 用()來(lái)分組
phone_num_regex_2 = re.compile(r'(\d\d\d)-(\d\d\d\d\d\d\d)|(\d\d\d)-(\d\d\d)')      # 用 | 匹配多個(gè)目標(biāo)(修正空格問(wèn)題)
phone_num_regex_3 = re.compile(r'(wo)?man')                                     # 用 ? 表示前面分組可選
phone_num_regex_4 = re.compile(r'(haha){3,5}')                                  # {} 控制匹配次數(shù)(修正原寫(xiě)法邏輯問(wèn)題)
phone_num_regex_5 = re.compile(r'haha*')                                        # * 匹配零次及以上
phone_num_regex_6 = re.compile(r'haha+')                                        # + 匹配1次及以上

# findall() 批量提取所有匹配項(xiàng)
all_matches = phone_num_regex.findall('My number is 415-5554242.415-5554241')          
print("所有匹配的電話(huà)號(hào)碼:", all_matches)
  • 正則字符分類(lèi)說(shuō)明
  1. \d 0 到 9 的任何數(shù)字
  2. \D 除 0 到 9 的數(shù)字以外的任何字符
  3. \w 任何字母、數(shù)字或下劃線(xiàn)字符(可以認(rèn)為是匹配“單詞”字符)
  4. \W 除字母、數(shù)字和下劃線(xiàn)以外的任何字符
  5. \s 空格、制表符或換行符(可以認(rèn)為是匹配“空白”字符)
  6. \S 除空格、制表符和換行符以外的任何字符

總結(jié)

到此這篇關(guān)于Python核心語(yǔ)法與常用庫(kù)完全學(xué)習(xí)指南的文章就介紹到這了,更多相關(guān)Python核心語(yǔ)法與常用庫(kù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

象州县| 昔阳县| 体育| 汪清县| 抚顺县| 石狮市| 海安县| 濉溪县| 祁门县| 都江堰市| 揭阳市| 湘乡市| 霍林郭勒市| 湘潭县| 南开区| 衡东县| 西畴县| 塔河县| 江达县| 万载县| 西城区| 莱芜市| 旬邑县| 清水河县| 红原县| 田东县| 南川市| 临沭县| 上虞市| 仲巴县| 静海县| 蚌埠市| 上思县| 抚宁县| 富蕴县| 潢川县| 馆陶县| 富源县| 伊吾县| 尼勒克县| 泸州市|