【dl】python基礎 深度學習中需要用到的python基礎

直接在jupyter寫筆記然后導出md格式真的太好用了


本文筆記來自小破站視頻BV1K14y1c75e


Python 基礎

1. 變量

1.1 三種基本變量類型

# 字符串 str
str_v = "123"
# 數字 int或float
num_v = 11
float_v = 12.0
# 布爾型 bool
bool_v = True
1.1.1 字符串

f字符串:在字符串中插入變量

iou = 0.98
print(f"iou is {iou}")
iou is 0.98

轉義字符:僅在print中生效

message = "The shop sells:\n\tlychee,\n\tfritters,\n\tfried fish."
print(message)
'The shop sells:\n\tlychee,\n\tfritters,\n\tfried fish.'
print(message)
The shop sells:lychee,fritters,fried fish.
1.1.2 布爾型
基于高級變量類型生成
# 以集合為例 其他都一樣
set_v = {1,2,3}
print(2 in set_v)
print(2 not in set_v)
True
False
not and or 非與或

同c中的 ! && || 不贅述

1.1.3 基礎變量的強制類型轉換
print(str(num_v))
print(str(float_v))
print(str(bool_v))
11
12.0
True
print(int(float_v))
print(int(str_v))
print(int(bool_v))
12
123
1
print(float(num_v))
print(float(str_v))
print(float(bool_v))
11.0
123.0
1.0

1.2 四種高級變量類型

# 集合 set
set_v = {1,3,2,4}
# 元組 tuple
tuple_v = (1,2,3)
# 列表 list
list_v = [1,2,3]
# 字典 dict
dict_v = {'a':1, 'b':2, 'c':3}
1.2.1 集合

無序、不可重復。集合出現的次數稀少,它更多是被看作字典的索引,即數據的標簽。后續pandas庫可以代替集合,還有字典。

另外集合不能存儲可變對象(列表、集合、字典、含有可變類型元素的元組),因為集合要求所有元素必須是可哈希的。

可以通過set函數或大括號創建集合

set([1,1,2,6,4,5,5])
{1, 2, 4, 5, 6}
{1,2,3,2,1}
{1, 2, 3}

注意請勿使用大括號創建空集合,否則會被誤認為字典

1.2.2 元組

可以通過規范括號法或者省略括號法來創建元組

(1,2,3)
(1, 2, 3)
1,2,3
(1, 2, 3)

高級變量類型可以容納所有的變量類型

'a', 1, True, {1,2,3}, (1,2,3), {'a':1, 'kk':2, '2': "ok"}
('a', 1, True, {1, 2, 3}, (1, 2, 3), {'a': 1, 'kk': 2, '2': 'ok'})

元組拆分法

# 極速創建新變量
a,b,c = 1,2,3
print(a,b,c)
1 2 3
# 極速交換變量
a,b = 1,2
b,a = a,b
print(a,b)
2 1
# 只要前兩個變量
value = 11,12,23,12,23,34
a, b, *rest = value
print(a,b,rest)
11 12 [23, 12, 23, 34]
1.2.3 列表

由若干個有序元素的變量組成。列表可以容納各種數據類型,但是列表要單獨存儲每一個元素的變量類型,列表越大約占空間。后續numpy庫將代替列表。

list_v = ['xxx', 12, True, (1,2,2,2), set([1,2,3]), {'a':1, 'b':2}]
list_v
['xxx', 12, True, (1, 2, 2, 2), {1, 2, 3}, {'a': 1, 'b': 2}]

訪問列表元素

# 通過索引訪問列表元素
print(list_v[0])
print(list_v[5])
# 索引-1表示倒數第一個元素
print(list_v[-1])
print(list_v[-6])
xxx
{'a': 1, 'b': 2}
{'a': 1, 'b': 2}
xxx

修改列表元素

list_v[-2]=(99,88,77)
list_v
['xxx', 12, True, (1, 2, 2, 2), (99, 88, 77), {'a': 1, 'b': 2}]

切片————訪問部分元素
切片的索引類似于數學上的左閉右開區間 [ , )

[ a, b, c, d, e ]|  |  |  |  | 0  1  2  3  4
-5 -4 -3 -2 -1
list_v = ['a', 'b', 'c', 'd', 'e']
# 切片有兩種理解方式
# 若兩個參數st和ed都是正數[st,ed] 就理解為從st開始切到ed
print(list_v[1:4])       # 從1開始切到4前
print(list_v[1: ])       # 從1開始切到結尾 or 切除開頭一個
print(list_v[ :4])       # 從開頭切到4前
# 若兩個參數一正一負[a:-b] 可以理解為切除開頭a個和結尾b個,除此之外都按照第一個理解方式來理解
print(list_v[2:-2])      # 從2開始切到-2前 or 切除開頭兩個和結尾兩個
print(list_v[2: ])       # 從2開始切到結尾 or 切除開頭兩個
print(list_v[ :-2])      # 從開頭切到-2前 or 切除結尾兩個
['b', 'c', 'd']
['b', 'c', 'd', 'e']
['a', 'b', 'c', 'd']
['c']
['c', 'd', 'e']
['a', 'b', 'c']
# 有3個參數時,第三個參數就是每個x個元素采樣一次
list_v = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
print(list_v[ : :2])
print(list_v[ : :3])
print(list_v[1:-1:2]) # 切除一頭一尾后 每隔2個元素采樣一次
['a', 'c', 'e', 'g']
['a', 'd', 'g']
['b', 'd', 'f']

注意:對列表切片之后會生成一個新的獨立的對象。為此,numpy的切片被設定為原對象的一個視圖,不會在內存中創建一個新的對象

列表元素的添加

使用+ *來添加原列表

list_v = [1,2,3]
print(list_v + [4,6])     # 尾部新增元素
print(list_v * 2)         # 復制兩倍的自己
[1, 2, 3, 4, 6]
[1, 2, 3, 1, 2, 3]
1.2.4 字典

可以理解為升級版的列表,就是自定義索引的列表。字典中的元素值可以是任何數據類型變量,但字典的鍵只能是數或者字符串,常常是字符串。

xjtu = {'CS': 'A+','SE': 'A-','EE': 'B+','ME': 'A+'
}
xjtu
{'CS': 'A+', 'SE': 'A-', 'EE': 'B+', 'ME': 'A+'}
# 添加元素
xjtu['Math'] = 'A'
xjtu['Bio'] = 'A'
xjtu['Phys'] ='B+'
xjtu['Psych'] ='B-'
xjtu
{'CS': 'A+','SE': 'A-','EE': 'B+','ME': 'A+','Math': 'A','Bio': 'A','Phys': 'B+','Psych': 'B-'}
# 修改元素
xjtu['SE'] = 'B+'
xjtu
{'CS': 'A+','SE': 'B+','EE': 'B+','ME': 'A+','Math': 'A','Bio': 'A','Phys': 'B+','Psych': 'B-'}
# 刪除元素
del xjtu['Math']
xjtu
{'CS': 'A+','SE': 'B+','EE': 'B+','ME': 'A+','Bio': 'A','Phys': 'B+','Psych': 'B-'}
1.2.5 高級變量之間的轉換

基本結構

set([1,2,3])                              # 轉化為 集合
tuple([1,2,3])                            # 轉化為 元組
list({1,2,3})                             # 轉化為 列表
dict(zip( ('a','b','c'), {1,2,3} ))         # 轉化為 字典
{'a': 1, 'b': 2, 'c': 3}

注意:轉為字典盡量不要使用集合,因為集合無序,會造成錯誤。

dict(zip({'a','b','c'}, {1,2,3}))    # 順序被打亂
{'b': 1, 'c': 2, 'a': 3}

2. 語句

2.1 if-else

# 示例1: 成績等級評定
score = 85
if score >= 90:grade = "A"
elif score >= 80:grade = "B"
elif score >= 70:grade = "C"
elif score >= 60:grade = "D"
else:grade = "F"print(f"分數 {score} 的等級是: {grade}")
分數 85 的等級是: B

三元表達式

# 傳統寫法
age = 20
if age >= 18:status = "成人"
else:status = "未成年"# 三元表達式寫法
status = "成人" if age >= 18 else "未成年"
print(status) # 另一個例子
x = 10
y = 20
max_value = x if x > y else y
print(f"最大值是: {max_value}") 
成人
最大值是: 20

與高級數據類型的結合,這里以列表為例

# 檢查列表是否包含特定元素
fruits = ["apple", "banana", "orange"]
if "banana" in fruits:print("列表中有香蕉")
else:print("列表中沒有香蕉")# 檢查列表是否為空
my_list = []
if my_list:print("列表不為空")
else:print("列表為空")
列表中有香蕉
列表為空

2.2 for

# 遍歷列表
fruits = ["蘋果", "香蕉", "橙子", "葡萄"]
for fruit in fruits:print(f"我喜歡吃{fruit}")# 帶索引遍歷列表
for index, fruit in enumerate(fruits): # index fruit順序不能反print(f"[{index}]: {fruit}")
我喜歡吃蘋果
我喜歡吃香蕉
我喜歡吃橙子
我喜歡吃葡萄
[0]: 蘋果
[1]: 香蕉
[2]: 橙子
[3]: 葡萄
# 遍歷字符串
word = "Python"
for char in word:print(char)
P
y
t
h
o
n
# 遍歷字典
student = {"姓名": "小明", "年齡": 20, "專業": "計算機"}# 遍歷鍵
for key in student:print(f"{key}")# 遍歷鍵值對
for key, value in student.items():print(f"{key}: {value}")
姓名
年齡
專業
姓名: 小明
年齡: 20
專業: 計算機
# 遍歷數字序列
for i in range(5): print(i)
0
1
2
3
4
# 指定起始和結束值
for i in range(2, 6): print(i)
2
3
4
5
# 指定步長
for i in range(0, 10, 2): print(i)
0
2
4
6
8
# 倒序循環
for i in range(5, 0, -1):print(i)
5
4
3
2
1
# else - 循環正常結束執行(非break退出)
for num in range(3):print(num)
else:print("循環正常結束")
0
1
2
循環正常結束
# 同時遍歷多個列表
names = ["小明", "小紅", "小剛"]
scores = [90, 85, 95]
subjects = ["數學", "英語", "語文"]for name, score, subject in zip(names, scores, subjects):print(f"{name}{subject}成績是{score}分")
小明的數學成績是90分
小紅的英語成績是85分
小剛的語文成績是95分

2.3 while

count = 1
while count <= 5:print(f"計數: {count}")count += 1
print("循環結束")
計數: 1
計數: 2
計數: 3
計數: 4
計數: 5
循環結束

在循環語句中,continue break 的用法同c語言

2.4 列表推導式

基本結構:

# 傳統方式:創建平方數列表
squares = []
for i in range(5):squares.append(i ** 2)
print(squares)  # 列表推導式
squares = [i ** 2 for i in range(5)]
print(squares) 
[0, 1, 4, 9, 16]
[0, 1, 4, 9, 16]
# 條件過濾
fruits = ["apple", "banana", "cherry", "date", "elderberry"]
short_fruits = [fruit for fruit in fruits if len(fruit) <= 5]
print(short_fruits)
['apple', 'date']
# if-else列表推導式
numbers = [1, 2, 3, 4, 5]
result = ["偶數" if num % 2 == 0 else "奇數" for num in numbers]
print(result) 
['奇數', '偶數', '奇數', '偶數', '奇數']

3. 函數

基本結構

def my_func(v):'''文檔字符串,用于解釋函數:這是我的函數'''return v

打印文檔字符串

my_func.__doc__
'文檔字符串,用于解釋函數:這是我的函數'

函數可以吞吐各個類型的變量

x = my_func(3)
x
3

可以利用元組吞吐多個值

def my_counter(a,b):return a+b, a*bx = my_counter(2,5)
x
(7, 10)

可以吞吐任意數量的參數

def menu(*args):return argsinfo = menu('fish','soup','beef','noodles')    
info
('fish', 'soup', 'beef', 'noodles')

可以同時傳入普通參數和一個任意數量參數

def stu_info(name, num, *hobbies):return name, num, hobbiesname, num, hb = stu_info('xxx', '22123', 'singing', 'dancing', 'dyno')
print(f"{name} 學號{num},喜歡{hb}")
xxx 學號22123,喜歡('singing', 'dancing', 'dyno')

同時傳入普通參數和一個任意數量的鍵值對參數

def comment(com1, com2, **kwargs):'''先評價cs,再評價ee,可以自行補充'''kwargs['CS'] = com1kwargs['EE'] = com2return kwargs

關鍵字調用,可以不按順序寫

def introduce(name, age, city):print(f"我叫{name},今年{age}歲,來自{city}")# 位置參數調用(必須按順序)
introduce("張三", 25, "北京")# 混合使用(位置參數必須在關鍵字參數之前)
introduce("錢七", city="杭州", age=40)
我叫張三,今年25歲,來自北京
我叫錢七,今年40歲,來自杭州

帶默認值的關鍵字參數

def create_user(name, age, role="user", active=True):print(f"創建用戶: {name}, 年齡: {age}, 角色: {role}, 狀態: {'活躍' if active else '禁用'}")# 使用默認值
create_user("Alice", 25)  # 角色: user, 狀態: 活躍# 覆蓋默認值
create_user("Bob", 30, role="admin")
create_user("Charlie", 35, active=False)
create_user("David", 40, role="moderator", active=True)# 關鍵字調用可以跳過有默認值的參數
create_user("Eve", 45, active=False)  # 角色使用默認值user
創建用戶: Alice, 年齡: 25, 角色: user, 狀態: 活躍
創建用戶: Bob, 年齡: 30, 角色: admin, 狀態: 活躍
創建用戶: Charlie, 年齡: 35, 角色: user, 狀態: 禁用
創建用戶: David, 年齡: 40, 角色: moderator, 狀態: 活躍
創建用戶: Eve, 年齡: 45, 角色: user, 狀態: 禁用

4. 類

4.1 創建和使用類

類的本質是在一堆函數之間傳遞參數。

類的名稱首字母必須大寫。

類中的函數叫方法,一個類包含一個 __init__ 方法(必須包含) + 很多自定義方法

class Counter:'''一臺可以加減的計算器'''def __init__(self, a, b):'''公共變量'''self.a = aself.b = bdef add(self):return self.a + self.bdef sub(self):return self.a - self.b
# 創建類的實例
cnt = Counter(5,6)     # 創建一個類的實例 cnt
print(cnt.a, cnt.b)    # 訪問屬性
print(cnt.sub())       # 調用方法
5 6
-1

函數內部的變量與外部是兩個空間,可以把self理解為船,使得自定義方法能在類里面互通,將需要互通的變量作為self的屬性進行傳遞。

4.2 屬性的默認值

可以給self的屬性一個默認值,此時默認值不用寫進__init()__的參數列表里

class Man:def __init__(self, name, age):self.name = nameself.age = ageself.gender = 'M'           # 默認屬性
xxx = Man('Mauri', 20)
print(xxx.name)
print(xxx.age)
print(xxx.gender)
Mauri
20
M

修改屬性的默認值

xxx.gender = 'MTF'
print(xxx.gender)
MTF

4.3 繼承

子類 class 類名(父類名)

# 父類
class Counter:'''一臺可以加減的計算器'''def __init__(self,a,b):'''公共變量'''self.a = aself.b = bdef add(self):return self.a - self.b       # 假設這里父類的加法寫錯了def sub(self):return self.a - self.b# 子類
class CounterPlus(Counter):'''可以加減乘除的高級計算器'''def __init__(self,a,b):super().__init__(a,b)             # 調用父類的構造函數def mul(self):return self.a * self.bdef div(self):return self.a / self.bdef add(self):return self.a + self.b        # 覆寫父類的加法
cnt = CounterPlus(5,6)
print(cnt.a, cnt.b)
print(cnt.add())
print(cnt.mul())
print(cnt.sub())
5 6
11
30
-1

4.4 掠奪

一個類可以通過掠奪獲得很多其他類的方法

# 一個無辜的類
class CounterBasic:'''一臺可以加減的計算器'''def __init__(self,a,b):'''公共變量'''self.a = aself.b = bdef add(self):return self.a + self.b       def sub(self):return self.a - self.b# 掠奪者
class CounterEvil(Counter):'''一臺原先只可以乘除的計算器,現在他要掠奪加減方法了'''def __init__(self,a,b):self.a = aself.b = b        self.counter = CounterBasic(a,b)def mul(self):return self.a * self.bdef div(self):return self.a / self.b
cnt = CounterEvil(3,4)
print(cnt.mul())
print(cnt.div())
print(cnt.counter.add())
print(cnt.counter.sub())
12
0.75
7
-1

掠奪的本質是將另一個類的實例當作self的屬性使用,相當于創建了一個內部的類的實例。此外,掠奪者和被掠奪者可以擁有同名方法,調用起來互不沖突。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/96648.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/96648.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/96648.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Vue FullPage.js 完整使用指南:Vue 3 官方全屏滾動解決方案

概述 vue-fullpage.js 是 FullPage.js 的官方 Vue.js 3 包裝器&#xff0c;為 Vue 3 應用提供了強大的全屏滾動功能。該插件基于成熟的 FullPage.js 庫&#xff0c;支持多種滾動效果和豐富的配置選項&#xff0c;特別適用于企業級數據大屏、產品展示、單頁應用等場景。 官方信…

軟件工程實踐一:Git 使用教程(含分支與 Gitee)

文章目錄目標一、快速上手1. Windows 安裝 Git2. 初始化 / 克隆二、核心概念速覽三、常用命令清單1) 查看狀態與差異2) 添加與提交3) 歷史與回溯4) 撤銷與恢復&#xff08;Git 2.23 推薦新命令&#xff09;5) 忽略文件四、分支與合并&#xff08;Branch & Merge&#xff09…

css`min()` 、`max()`、 `clamp()`

min() 用來計算多個數值中最小的那個&#xff0c;非常適合做自適應。 width: min(50vw, 500px) 50vw 表示 視口寬度的 50% 500px 表示 500px min(50vw, 500px) 表示會取兩者中 最小的那個 作為最終的寬度&#xff0c;。 使用場景 限制某個元素寬度不超過某個值&#xff1b; 響…

【WRF-VPRM 預處理器】HEG 安裝(服務器)-MRT工具替代

目錄 HEG 安裝 驗證 HEG 安裝與否 設置環境變量(建議) 命令行接口(Command Line Interface) hegtool 工具 hegtool 用法 Header File 格式 功能1:`gdtif` 工具 – MISR 數據處理 `gdtif` 使用方式 參數文件格式(Parameter File Format) 功能2:`resample` 工具 – 重采樣…

PyTorch 神經網絡

神經網絡是一種模仿人腦神經元鏈接的計算模型&#xff0c; 由多層節點組成&#xff0c; 用于學習數據之間的復雜模式和關系。神經網絡通過調整神經元之間的連接權重來優化預測結果&#xff0c;這個過程可以涉及到向前傳播&#xff0c;損失計算&#xff0c;反向傳播和參數更新。…

詳細解析蘋果iOS應用上架到App Store的完整步驟與指南

&#x1f4f1;蘋果商店上架全流程詳解 &#x1f469;?&#x1f4bb;想要將你的App上架到蘋果商店&#xff1f;跟隨這份指南&#xff0c;一步步操作吧&#xff01; 1?? 申請開發者賬號&#xff1a;訪問蘋果開發者網站&#xff0c;注冊并支付99美元年費&#xff0c;獲取開發者…

三維GIS開發實戰!Cesium + CZML 實現火箭飛行與分離的 3D 動態模擬

CZML是一種基于JSON的數據格式&#xff0c;專門用于在Cesium中描述3D場景和時間動態數據。本文將詳細介紹了CZML的特點&#xff08;JSON格式、時間動態性、層次結構等&#xff09;和基本組件&#xff0c;并給出了一個火箭發射的實例。通過搭建Cesium開發環境&#xff08;使用vi…

Spring Boot 深入剖析:BootstrapRegistry 與 BeanDefinitionRegistry 的對比

在 Spring Boot 的啟動過程中&#xff0c;BootstrapRegistry 和 BeanDefinitionRegistry 是兩個名為“Registry”卻扮演著截然不同角色的核心接口。理解它們的差異是深入掌握 Spring Boot 啟動機制和進行高級定制開發的關鍵。BootstrapRegistry public static ConfigurableAppl…

貪心算法應用:速率單調調度(RMS)問題詳解

Java中的貪心算法應用&#xff1a;速率單調調度(RMS)問題詳解 1. 速率單調調度(RMS)概述 速率單調調度(Rate Monotonic Scheduling, RMS)是一種廣泛應用于實時系統中的靜態優先級調度算法&#xff0c;屬于貪心算法在任務調度領域的經典應用。 1.1 基本概念 RMS基于以下原則&…

Cesium4--地形(OSGB到3DTiles)

1 OSBG OSGB&#xff08;OpenSceneGraph Binary&#xff09;是基于 OpenSceneGraph&#xff08;OSG&#xff09; 三維渲染引擎的二進制三維場景數據格式&#xff0c;廣泛用于存儲和傳輸傾斜攝影測量、BIM、點云等大規模三維模型&#xff0c;尤其在國產地理信息與智慧城市項目中…

多語言共享販賣機投資理財共享售賣機投資理財系統

多語言共享販賣機投資理財/共享售賣機分紅/充電寶/充電樁投資理財系統 采用thinkphp內核開發&#xff0c;支持注冊贈金、多級分銷&#xff0c;功能很基礎 修復后臺用戶列表管理 可自定義理財商品 多種語言還可以添加任意語言 源碼開源 多級分銷 注冊贈金等

[Windows] PDF 專業壓縮工具 v3.0

[Windows] PDF 專業壓縮工具 v3.0 鏈接&#xff1a;https://pan.xunlei.com/s/VOZwtC_5lCF-UF6gkoHuxWMoA1?pwdchg8# PDF 壓縮工具 3.0 新版功能特點 - 不受頁數限制&#xff01; 一、核心壓縮功能 1.多模式智能壓縮 支持 4 種壓縮模式&#xff1a;平衡模式&#xff08…

SHEIN 希音 2026 校招 內推 查進度

SHEIN 希音 2026 校招 內推 查進度 &#x1f3e2;公司名稱&#xff1a;SHEIN 希音 &#x1f4bb;招聘崗位&#xff1a;前端、后端、測試、產品、安全、運維、APP 研發、數據分析、設計師、買手、企劃、招商、管培生 &#x1f31f;內推碼&#xff1a;NTA2SdK &#x1f4b0;福利待…

ARM (6) - I.MX6ULL 匯編點燈遷移至 C 語言 + SDK 移植與 BSP 工程搭建

回顧一、核心關鍵字&#xff1a;volatile1.1 作用告訴編譯器&#xff1a;被修飾的變量會被 “意外修改”&#xff08;如硬件寄存器的值可能被外設自動更新&#xff09;&#xff0c;禁止編譯器對該變量進行優化&#xff08;如緩存到寄存器、刪除未顯式修改的代碼&#xff09;。本…

Vue中使用keep-alive實現頁面前進刷新、后退緩存的完整方案

Vue中使用keep-alive實現頁面前進刷新、后退緩存的完整方案 在Vue單頁應用中&#xff0c;路由切換時組件默認會經歷完整的銷毀-重建流程&#xff0c;這會導致兩個典型問題&#xff1a;從搜索頁跳轉到列表頁需要重新加載數據&#xff0c;而從詳情頁返回列表頁又希望保留滾動位置…

Visual Studio Code 安裝與更新故障排除:從“拒絕訪問”到成功恢復

Visual Studio Code 安裝與更新故障排除&#xff1a;從“拒絕訪問”到成功恢復的實踐分析 摘要&#xff1a; 本文旨在探討 Visual Studio Code (VS Code) 在安裝與更新過程中常見的故障&#xff0c;特別是涉及“拒絕訪問”錯誤、文件缺失以及快捷方式和任務欄圖標異常等問題。…

簡單UDP網絡程序

目錄 UDP網絡程序服務端 封裝 UdpSocket 服務端創建套接字 服務端綁定 運行服務器 UDP網絡程序客戶端 客戶端創建套接字 客戶端綁定 運行客戶端 通過上篇文章的學習&#xff0c;我們已經對網絡套接字有了一定的了解。在本篇文章中&#xff0c;我們將基于之前掌握的知識…

如何解決 pip install 安裝報錯 ModuleNotFoundError: No module named ‘requests’ 問題

Python系列Bug修復PyCharm控制臺pip install報錯&#xff1a;如何解決 pip install 安裝報錯 ModuleNotFoundError: No module named ‘requests’ 問題 摘要 在日常Python開發過程中&#xff0c;pip install 是我們最常用的依賴安裝命令之一。然而很多開發者在 PyCharm 控制臺…

解釋 ICT, Web2.0, Web3.0 這些術語的中文含義

要理解“ICT Web2.0”術語的中文含義&#xff0c;需先拆解為 ICT 和 Web2.0 兩個核心概念分別解析&#xff0c;再結合二者的關聯明確整體指向&#xff1a; 1. 核心術語拆解&#xff1a;中文含義與核心定義 &#xff08;1&#xff09;ICT&#xff1a;信息與通信技術 中文全稱&am…

IDEA版本控制管理之使用Gitee

使用Gitee如果之前沒用過Gitee&#xff0c;那么IDEA中應該長這樣&#xff08;第一次使用&#xff09;如果之前使用過Gitee&#xff0c;那么IDEA中應該長這樣這種情況&#xff0c;可以先退出Gitee&#xff0c;再拉取Gitee&#xff0c;退出Gitee方法見文章底部好&#xff0c;那么…