電腦二級Python

来源:https://www.cnblogs.com/mxdon/archive/2019/08/08/11324596.html
-Advertisement-
Play Games

概述 電腦二級在近兩年新加了python的選擇,趁機考了一下,順便記錄一下學習的一些所獲 第一章 程式設計語言概述 考綱考點: 這一部分主要是介紹電腦語言的公共常識,一些嘗試我就按照自己的理解方式來記憶: 程式設計語言——電腦與人類之間的翻譯官,所以稱為交互體系,翻譯官用的語言稱為電腦程式, ...


概述

電腦二級在近兩年新加了python的選擇,趁機考了一下,順便記錄一下學習的一些所獲

第一章 程式設計語言概述

考綱考點:

1

這一部分主要是介紹電腦語言的公共常識,一些嘗試我就按照自己的理解方式來記憶:

程式設計語言——電腦與人類之間的翻譯官,所以稱為交互體系,翻譯官用的語言稱為電腦程式,就像人類的語言有語法等等規則一樣。

高級編程語言包括靜態語言和腳本語言,python是解釋語言,就是直接跟電腦對話的那種,也就是腳本語言;Java那種是需要編譯才能執行的語言,就相當於需要二次翻譯,是靜態語言,因為靜態(懶),還需要一個傳話的才行。

官方用語的話,編譯是將源代碼轉換成目標代碼的過程,解釋是將源代碼逐條轉換成目標代碼的同時逐條運行目標代碼的過程。二者區別可見下圖來理解:

2

3

編譯是一次性翻譯,再傳話,經過傳話人以後,就不需要翻譯官再翻譯一遍了,所以一旦程式被編譯,就不需要再次編譯,所以重覆執行速度更快,當然這個目標代碼也就不再需要編譯器。

解釋是每次都需要解釋,因為翻譯一遍的外語容易忘,告訴傳話人以後,傳話人就不容易忘自己母語記憶的內容,但是解釋是翻譯官兼職傳話人,所以只要翻譯官存在,程式就可以執行。無論是那種系統,而且一個人乾,程式糾錯和維護也非常方便。

Python語言概述

這是python的最小程式了。

至於python的開發環境配置這裡就不介紹了,環境變數可以直接添加,比jdk方便多了

python的解釋器有兩個重要工具:IDLE——python集成開發環境(相當於人類、翻譯官、電腦組成的整體),pip——python第三方庫安裝工具(邀請翻譯官的功能)

Python程式的運行方式——互動式(命令行)、文件式(非命令行)

程式的基本編寫方法

IPO程式編寫方法——Input(輸入,相當於人類編寫代碼這個過程),process(處理,相當於翻譯),output(電腦得到翻譯官給的信息做出響應)

Python程式的特點

Python具有通用性,因為應用領域廣,所以才要學習,當作工具用也好

Python語法簡潔,只有33個保留字,看起來就像英語正常表達一樣

Python生態高產,庫特別多,也就是翻譯官特別充足,很多荒誕無理的要求都可以被翻譯官聽懂

除了Python語法的三個重要特點外,Python程式還 有一些具體特點。

•平臺無關:前面說到過,只要有翻譯官就可以,在任何系統都可以運行

•強制可讀 :也就是利用縮進來表明邏輯關係,相當於句子之間沒有停頓,使用縮進來強制理解

•支持中文:看下圖

第二章 Python語言基本語法元素

考綱考點:

程式的格式框架

縮進:

Python語言採用嚴格的“縮進”來表明程式的 格式框架,用來表示代碼之間的包含和層次關係。 1個縮進 = 4個空格 =1個退格。但是空格和退格不能混用。而且縮進是Python語言中表明程式框架的唯一手段。其重要性可見一斑。

註釋:

註釋就是在輸入的時候加入一些不想讓翻譯官翻譯的東西,但是翻譯官如何去區分哪些是要的,哪些是不要的呢?所以就有了註釋,單行註釋用井號。多行註釋用三對引號,三隊引號之間的內容就是被註釋掉了。單引號雙引號無所謂。

1
2
3
4
5
6
7
8
9
'''
這裡面
都是註釋
'''
#print("Hello!") 這是一條單行註釋
"""
這裡面
也都是註釋
"""

變數:

變數就是一個一個的小房子,用來存放東西的,經常用一個等號把東西放進變數(房子)里,也就是賦值。

1
2
a=3		#把3放進了a中
a==2 #兩個等號是用來比較二者是否相同

命名:

Python語言允許採用大寫字母、小寫字母、數 字、下劃線(_)和漢字等字元及其組合給變數命 名,但名字的首字元不能是數字,中間不能出現空格,長度沒有限制 n。註意:標識符對大小寫敏感,python和Python 是兩個不同的名字

保留字:

python中你蓋的房子是變數,早就存在的名勝建築就是叫做保留字了,自己的房子愛咋咋地,名勝古跡可不能亂動,而且還不能建一個和名勝建築一樣的房子,要不然就侵權了,要坐牢(出bug)的!

數據類型

Python語言支持多種數據類型,最簡單的包括數字類型、字元串類型,略微複雜的包括元組類型、集合類型、列表類型、字典類型等。

數字類型

表示數字或數值的數據類型稱為數字類型,Python語言提供3種數字類型:整數、浮點數和複數,分別對應數學中的整數、實數和複數。

一個整數值又可以表示為十進位、十六進位、八進位和二進位等不同進位形式。一個浮點數可以表示為帶有小數點的一般形式,也可以採用科學計數法表示。

1
2
3
4
5
6
7
8
9
舉個例子,看不懂也沒關係
#整數類型
十進位: 1010
十六進位:0x3F2
八進位: 0o1762
二進位: 0b001111110010
#浮點數類型
一般形式: 123.456
科學計數法: 1.23456e2

字元串

至於字元串, Python語言中,字元串是用兩個雙引號“ ”或者單 引號‘ ’括起來的一個或多個字元。

1
2
3
4
5
6
"hello world"[1]
輸出:e
"hello world"[6]
輸出:w
"hello world"[-1]
輸出:d

可以採用[N: M](左閉右開區間)格式獲取字元串的子串,這個操作被形象地稱為切片。

1
2
3
4
"hello world"[1:4]
輸出:ell
"hello world"[6:-2]
輸出:wor

可以通過Python預設提供的len()函數獲取字元串 的長度,一個中文字元和西文字元的長度都記為1。

1
2
3
4
len("hello")
輸出:5
len("hello world")
輸出:11

程式的語句元素

表達式

產生或計算新數據值的代碼片段稱為表達式,簡單說就是連接在一起的一個句子/短句

賦值

前面提到過了,一個等號是賦值,而且是從右往左賦值,如a=3

引用

Python程式會經常使用當前程式之外已有的功能 代碼,這個過程叫“引用”。Python語言使用 import保留字引用當前程式以外的功能庫,使用方 式如下: import <功能庫名稱>

其實說白了就是請翻譯官

分支語句

分支語句是控製程序運行的一種語句,它的作用是根據判斷 條件選擇程式執行路徑。分支語句包括:單分支、二分支和 多分支。如:

1
2
3
a=3			#一開始告訴你a裡面放的是3
if a==3: #註意冒號,然後翻譯一下,如果a等於3
print("a=3沒毛病") #註意縮進,表示上一句的"斷句",翻譯為"則輸出a=3沒毛病"

迴圈語句

迴圈語句是控製程序運行的一類重要語句,與分支 語句控製程序執行類似,它的作用是根據判斷條件 確定一段程式是否再次執行一次或者多次。

1
2
3
4
#輸出1到10中所有的自然數
n=1
while n<10: #註意冒號,翻譯——當n小於10的時候
print(n) #註意縮進,翻譯——則輸出n

基本輸入輸出函數

直接演示了

1
2
3
4
5
a=input("預設會輸入字元串噢")	#輸入函數input(),就算是輸入數字也會當成字元串
b=eval("1.3+a") #輸入函數eval(),裡面就算是有字元串類型的數字,也會變成數字噢
print(a) #輸出一串數字
print(b) #加入a輸入了1,這裡就輸出2.3
print(1.3+a) #這裡會報錯噢,因為字元串類型的數字和數字不能相加

print函數還有個重要的地方:print函數輸出講道理是直接就換行了,因為print()裡面自帶換行,舉個例子:

1
2
3
print(3,end="")		#不換行
print(3) #換行,其實是print(3,end="\n"),後面的部分預設就不顯示出來了
print(3,end="k") #輸出3k

第三章 基本數據類型

考綱考點

數字類型

前面提到過,python提供的數字類型有三種,整數、浮點、複數,翻譯一下就算整數、實數、複數。

整數嘛,在前面加0b或者0B,就意味著你在寫二進位數字,b代表binary,其他英文可自行查閱。

浮點和整數的區別就算10.10是浮點,10.0也是浮點,都不是整數。浮點數還可以用科學計數法來寫,如1010.0-1010.1.01e3-1.01E-3

至於複數,電腦可不像人變通那麼多,10+0j是複數,10就不是複數,所以只要帶j的數就算複數。

1
2
3
4
5
6
(1.23e4+5.67e4j).real  			#.real是用來獲取實部,點翻譯成“的”,real翻譯為實部
12300.0
(1.23e4+5.67e4j).imag #同上
56700.0
1.23e4+5.67e4j.imag # 先獲得5.67e4j的虛部,再與1.23e4進行求和計算
69000.0

數字類型的運算

操作符功能
x+y 求和
x-y 求差
x*y 求積
x/y 求商
x//y x與y之整數商,即:不大於x與y之商的最大整數
x**y x的y次冪,即:xy
+x x
-x -x
x % y x與y之商的餘數,也稱為模運算
x+=y x=x+y
x*=y x=x*y
依次類推 ……
abs(x) x的絕對值
divmod(x, y) (x//y, x%y),輸出為二元組形式(也稱為元組類型)
pow(x, y[, z]) (xy)%z,[..]表示該參數可以省略,即:pow(x,y),它與xy相同
round(x[, ndigits]) 對x四捨五入,保留ndigits位小數。round(x)返回四捨五入的整數值
max(x1, x2, …, xn) x1, x2, …, xn的最大值,n沒有限定
min(x1, x2, …, xn) x1, x2, …, xn的最小值,n沒有限定

浮點數與整數運算,產生結果是浮點數 ,另外int(10.10)得到整數10,int("10")也會得到10,但是int(“10.10”)就會報錯,打個比方就是你把10.10放進int的房子里時,int首先接待第一個字元,也就是1,他知道這是數字,就收下了,但是只能收下整數,當第一個字元是"時,他知道是字元串,就收下了,當然只要是整數就沒問題,結果字元串給他一個浮點,他int就被撐炸了。

字元串類型及格式化

1
2
3
4
5
6
7
8
print('這是"單行字元串"') 
這是"單行字元串"
print("這是'單行字元串'")
這是'單行字元串'
print("""這是'多行字元串'的第一行 這是'多行字元串'的第二行 """)
這是'多行字元串'的第一行 這是'多行字元串'的第二行
print('''這是"多行字元串"的第一行 這是"多行字元串"的第二行 ''')
這是"多行字元串"的第一行 這是"多行字元串"的第二行

重點,這個好像在考試經常會挖坑:Python語言轉義符: \ ,例如:\n表示換行、\表示反斜杠、'表示單引 號、"表示雙引號、\t表示製表符(TAB)等。

然後這個叫字元串的索引,切片,字面意思

1
2
3
4
5
6
"hello world"[1]
輸出:e
"hello world"[6]
輸出:w
"hello world"[-1]
輸出:d

重點,format()方法的基本使用,舉幾個例子,自己理解比書面用於可能會好理解一點

1
2
3
4
5
6
7
8
"{}曰:學而時習之,不亦說乎。".format("孔子") 
'孔子曰:學而時習之,不亦說乎。'
"{}曰:學而時習之,不亦{}。".format("孔子","說乎")
'孔子曰:學而時習之,不亦說乎。'
"{1}曰:學而時習之,不亦{0}。".format("說乎","孔子")
'孔子曰:學而時習之,不亦說乎。'
"{1}曰:{{學而時習之,不亦{0}}}。".format("說乎","孔子")
'孔子曰:{學而時習之,不亦說乎}。'

然後我總結一下:大括弧就相當於座位,format裡面就是即將入座的學生,大括弧里沒數字的就代表座位沒寫名字,誰排前面誰坐,有數字就按數字坐,當然最前的數字是第0,當然如果大括弧里本來就有東西,那些代表刻在桌子上的其他字,照例輸出就行

除此之外,format還有控制格式的作用:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
s = "等級考試"				#在下麵的25代表輸出的字元數量
"{:25}".format(s) #左對齊,預設 '等級考試 '
"{:^25}".format(s) #居中對齊 ' 等級考試 '
"{:>25}".format(s) #右對齊 ' 等級考試'
"{:*^25}".format(s) #居中對齊且填充*號 '**********等級考試***********'
"{:+^25}".format(s) #居中對齊且填充+號 '++++++++++等級考試+++++++++++'
"{:十^25}".format(s) #居中對齊且填充漢字“十” '十十十十十十十十十十等級考試十十十十十十十十十十十'
"{:^1}".format(s) #指定寬度為1,不足變數s的寬度 '等級考試'
"{:.2f}".format(12345.67890) #'12345.68'
"{:>25.3f}".format(12345.67890) # ' 12345.679'
"{:.5}".format("全國電腦等級考試") #'全國電腦'
"{0:b},{0:c},{0:d},{0:o},{0:x},{0:X}".format(425) # '110101001,Ʃ,425,651,1a9,1A9' b: 輸出整數的二進位方式; c: 輸出整數對應的Unicode字元; d: 輸出整數的十進位方式; o: 輸出整數的八進位方式; x: 輸出整數的小寫十六進位方式; X: 輸出整數的大寫十六進位方式;
"{0:e},{0:E},{0:f},{0:%}".format(3.14) #'3.140000e+00,3.140000E+00,3.140000,314.000000%'
"{0:.2e},{0:.2E},{0:.2f},{0:.2%}".format(3.14) #對比輸出 '3.14e+00,3.14E+00,3.14,314.00%'

這個讀者自行總結好了吧,適合自己的記憶才是有用的,官方解釋以後遇到再說,反正能看懂

其實常用的就幾個

1
2
3
4
"{:.2f}".format(3.1415926)  		 # 輸出小數點後兩位 '3.14' 
"{:x}".format(1010) # 輸出整數的十六機制形式 '3f2'
"{:.5}".format("這是一個很長的字元串") # 輸出字元串的前5位 '這是一個很'
"{:-^10}".format("PYTHON") # 居中並填充 '--PYTHON--'

字元串類型的操做

操作符翻譯
x + y 連接兩個字元串x與y
x * n 或 n * x 複製n次字元串x
x in s 如果x是s的子串,返回True,否則返回False,’Y’ in name →False

字元串處理函數

函數描述
len(x) 返回字元串x的長度,也可返回其他組合數據類型的元素個數
str(x) 返回任意類型x所對應的字元串形式
chr(x) 返回Unicode編碼x對應的單字元
ord(x) 返回單字元x表示的Unicode編碼
hex(x) 返回整數x對應十六進位數的小寫形式字元串
oct(x) oct(x)

放張圖自行參悟

在學習類型這一塊,type()函數是個好東西,他能幫你得到你想要知道的東西的類型。比如print(type(123))就會列印出int,其他的也都可以用。

第四章 程式的控制結構

考綱考點

程式的基本結構

任何程式最多三種基本結構組成:順序結構、分支結 構和迴圈結構。 一條一條向下進行的翻譯就是順序結構,向下翻譯時遇到需要跳過的部分就是分支(if\swich語句),翻譯到下麵某處又返回到上面的就是迴圈(while\for語句)、

在這種邏輯語句中,縮進要特別註意,與程式邏輯相關很大,冒號也要重視,這是格式要求

分支結構

1
2
3
4
5
6
# 判斷用戶輸入數字的特點
s = eval(input("請輸出一個整數:")) #假如輸入7
if s % 3 == and s % 5 == 0: #這句話就要跳過,因為7不滿足這個條件,所以就是分支
print("這個數字既能被3整除,又能被5整除")
else: #如果輸入15,這句話就要跳過
print("輸入數字是:", s)

有時候需要很多條岔路口,那就是else 後面再加一句 if,但是這種寫法有規定,拼寫成elif,然後有幾個if就算幾分支語句

操作符含義
< 小於
> 大於
<= 小於等於
>= 大於等於
== 等於
!= 不等於

迴圈結構

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
for c in "Python":				#這種也成為for的迴圈遍歷
print(c)
#輸出結果如下:
P
y
t
h
o
n
#同樣的效果還有:
for i in range(6): #for迴圈經常搭配range函數使用
print("Python"[i])
i = 0 #while的用法
while i < 6:
print("Python"[i])
迴圈控制

迴圈的時候如果遇到在一範圍內不想繼續運行的情況,就需要用到迴圈控制了——breakcontinuebreak跳出整個迴圈,continue跳出當此迴圈

以for迴圈為例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
for i in range(6):
if i == 1:
continue
elif i ==3:
break
print("Python"[i])
#輸出結果如下:
P #從第0號開始
#y 第1號不輸出
t
#以下都不輸出,因為到了第三號
h
o
n

程式的異常處理

Python語言使用保留字try和except進行異常處理,try後面如果遇到錯誤了,就執行except後面的,有點像if分支語句的感覺,舉個例子

1
2
3
4
5
try:
for i in range(5):
print(10/i, end=" ")
except:     
print("某種原因,出錯了!")

上面例子中,當i迴圈時,會從0開始,這樣就出現除數為0的情況,這樣講道理是要報錯的,但是遇到錯誤會執行except後面的代碼,所以最後知識輸出一句“某種原因,出錯了!”醬紫。

第五章 函數和代碼復用

考點考綱

函數的基本使用

首先是定義函數,如下就定義完了,要註意的只有縮進和冒號

1
2
3
def 函數(一些函數需要用到的參數):
一些代碼
return 一些返回值,當然也可以沒有

定義了就要用,如下

1
2
3
4
5
6
7
8
9
10
11
12
def multiply(x, y):			#定義函數
print(x*y)
multiply(99, 2) #調用函數,輸出198

def multiply(x=10, y): #定義函數
print(x*y)
multiply(2) #調用函數,輸出20

def multiply(x, y=10): #定義函數
print(x*y)
multiply(99) #調用函數,輸出990
multiply(y = 2, x = 99) #調用函數,輸出198

變數的作用域

在誰的冒號下麵的縮進下就是作用於誰的變數,除了那個冒號和縮進的範圍就沒用了。

1
2
3
4
5
6
7
8
9
def hanshu():
n=3
print(n) #不報錯
print(n) #報錯

n=2
def hanshu():
print(n) #報錯
print(n) #不報錯

如果想要訪問局部變數,科研在前面加上global用來強調是全局變數

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
n=2
def hanshu():
n=3
print(n)
def han():
global n
n=3
print(n)
print(n)
hanshu()
han()
print(n)
#輸出:
2
3
3
3

組合數據類型

考綱考點

組合數據類型的基本概念

集合

集合是無序組合,用大括弧({})表示,它沒有 索引和位置的概念,集合中元素可以動態增加或刪除。集合中元素不可重覆,元素類型只能是固定數據類型,也就是說只能放你想賦值的東西,賦值過的房子是不能放進集合這種房子的。

1
2
3
4
5
6
7
S = {1010, "1010", 78.9}
type(S)
<class 'set'> #輸出
len(S)
3 #輸出
print(S)
{78.9, 1010, '1010'} #輸出

集合類型有4個操作符,交集(&)、並集(|)、差集 (-)、補集(^),操作邏輯與數學定義相同。比如S-T得到一個新集合包括在集合S中但不在集合T中的元素 。

函數或方法描述
S.add(x) 如果數據項x不在集合S中,將x增加到s
S.remove(x) 如果x在集合S中,移除該元素;不在產生 KeyError異常
S.clear() 移除S中所有數據項
len(S) 返回集合S元素個數
x in S 如果x是S的元素,返回True,否則返回False
x not in S 如果x不是S的元素,返回True,否則返回False

集合類型主要用於元素去重,適合於任何組合數據類型。

1
2
3
T = {1010, "1010", 12.3, 1010, 1010}
print(T)
{1010, '1010', 12.3}

序列

理解以下字元串就行,字元串就是一種字元序列

列表

列表也是一種序列,參考一下字元串,這裡寫一下不同的地方

方法描述
ls.append(x) 在列表ls最後增加一個元素x
ls.insert(i, x) 在列表ls第i位置增加元素x
ls.clear() 刪除ls中所有元素
ls.pop(i) 將列表ls中第i項元素取出並刪除該元素
ls.remove(x) 將列表中出現的第一個元素x刪除
ls.reverse() 列表ls中元素反轉
ls.copy() 生成一個新列表,複製ls中所有元素

字典

其實字典也是序列,但是字元串和列表都是把索引預設按[0,len(list)-1]來確定順序,而字典的區別就是自己把確定順序的東西寫出來

1
2
3
4
5
6
7
8
9
10
11
12
d = {"201801":"小明", "201802":"小紅", "201803":"小白"}
print(d["201802"])
小紅

d = {"201801":"小明", "201802":"小紅", "201803":"小白"}
len(d)
3

#dict()函數用於生成一個空字典,作用和{}一致。
d = dict()
print(d)
{}

稍微瞭解一點:排序的東西叫做keys,被排序的東西叫做values

操作方法描述
d.keys() 返回所有的鍵信息
d.values() 返回所有的值信息
d.items() 返回所有的鍵值對
d.get(key, default) 鍵存在則返回相應值,否則返回預設值
d.pop(key, default) 鍵存在則返回相應值,同時刪除鍵值對,否則返回預設值
d.popitem() 隨機從字典中取出一個鍵值對,以元組(key, value)形式返回
d.clear() 刪除所有的鍵值對

第七章 文件和數據格式化

考綱考點

文件的使用

首先,讀文件,分三個步驟,打開文件——讀取文件——關閉文件

1
2
file1 = open('/Users/Ted/Desktop/test/abc.txt','r',encoding='utf-8') 
#第一個參數是文件路徑,這裡知識舉個例子,第二個參數是表示打開時文件的狀態,第三個參數是編碼方式

路徑有絕對路徑和相對路徑,相對當前文件夾的路徑叫做相對路徑,相對於我的電腦的路徑是絕對路徑。

文件打開時的狀態是由“讀read”“寫write”“追加append”,以及與位元組組合作用的效果,下圖表示的是以二進位文件打開,把b換成t就算以文本文件方式打開,除了r、w、a還有x,表示如果文件不存在,則自行創建,如果存在就報錯,而w是覆蓋原文件的寫,存在就覆蓋,不存在就新建。

1
2
3
4
5
6
7
8
9
f = open(“a.txt”,“rb”) 		#b表示二進位文件方式 
print(f.readline())
f.close()
b'\xc8\xab\xb9\xfa\xbc\xc6\xcb\xe3\xbb\xfa\xb5\xc8\xbc\xb6 \xbf\xbc\xca\xd4' #輸出內容

f = open("D://b.txt", "r")
for line in f:
print(line) #按行輸出內容
f.close()

用完文件一定要給關掉,要不然會造成記憶體泄漏、占用資源啥的。當然也可以用with open('abc.txt','a') as file1:這樣的句子來打開文件,程式調用結束後文件會自動關閉。

方法含義
f.read(size=-1) 從文件中讀入整個文件內容。參數可選,如果給出,讀入 前size長度的字元串或位元組流
f.readline(size = -1) 從文件中讀入一行內容。參數可選,如果給出,讀入該行 前size長度的字元串或位元組流
f.readlines(hint=-1) 從文件中讀入所有行,以每行為元素形成一個列表。參數 可選,如果給出,讀入hint行
f.seek(offset) 改變當前文件操作指針的位置,offset的值: 0:文件開頭; 2: 文件結尾
f.write(s) 向文件寫入一個字元串或位元組流
f.writelines(lines) 將一個元素為字元串的列表寫入文件

數據組織的維度

1、2、3、4這樣叫一維數據

下表是二維數據:

12
小紅 小明

高維數據:

1
2
3
4
"本書" : [
"第1章" : "程式設計基本方法",
"第2章" : "Python語言基本語法元素",
]

那麼這樣的數據怎麼存入文件呢?上面說的寫入都是將列表中的元素原封不動的存入txt文件中,通過向元素中加入換行符等等對寫入進行格式調整,其實我們也可以用其他方法。

其中用逗號分割的存儲格式叫做csv格式(Comma-Separated Values,即逗號分隔值)

1
2
3
4
ls = ['北京', '上海', '天津', '重慶'] 
f = open("city.csv", "w")
f.write(",".
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 設計原則的目的是構建出更加穩定和健壯的軟體。而像這樣的軟體要求 - 松耦合 - 可擴展性強 ...
  • 為了面向介面編程,而不是面向實現編程,所以此時我麽就不能再直接使用new了,因 為當看到“new”時,我們就會想到“具體”。 下麵來看一個例子,假如你有一個披薩店,你的代碼可能這麼寫: 但是此時你需要更多披薩類型,所以你就要修改代碼,如下所示: 但是此時由於產業競爭問題,你想加入一些其他口味的piz ...
  • 另一篇文章,也對TempData 做了很詳細的介紹,鏈接地址:https://www.jianshu.com/p/eb7a301bc536 。 MVC中的 TempData 可以在Controller之間進行傳遞,如果使用過了之後,不管是在View里使用,還是在controller里使用,再次獲取就 ...
  • 前言: 本文一切觀點和測試代碼是在python3的基礎上。 Content: 1.什麼是魔法函數,魔法函數__getitem__在python中應用。 2.python的數據模型和數據模型這種設計對python的影響 3.python常用的魔法函數 4.從len()方法看魔法函數的特點 5.魔法函數 ...
  • 剛到大三時前面兩年荒廢了 什麼都沒學到所以打算自學個編程 自己對Java非常感興趣 就打算自學Java 但是一開始看書 有很多看不懂 非常苦惱 也打算過去培訓 但是培訓太貴了 最後打算還是先自學一段時間 不行再去培訓 最後買了一套教程 覺得這套教程非常不錯 老師講解非常細緻 通俗易懂 自學了幾個月 ...
  • 一、集成開發環境(Integrated Develop Environment,簡稱IDE) 1.什麼是集成開發環境 (1)集成開發環境可以使軟體開發變得更簡單 (2)沒有IDE工具: i.需要安裝JDK,需要配置環境變數;需要手動的將java源文件編譯生成class位元組碼文件; ii.java源程 ...
  • 結合 "Spring 後置處理器源碼" 和 "Spring Aware源碼" ,再來看下 Spring AOP 的源碼。 啟動 AOP 使用 @EnableAspectJAutoProxy 這個註解來啟用 AOP 的能力了。它使用 @Import 導入類 AspectJAutoProxyRegist ...
  • 概述 一些同學的Java課設有這樣一個問題,比較感興趣就做了一下 功能介紹: 1、可增加鬧鐘 2、可刪除鬧鐘 3、時間到了響鈴 4、關閉鬧鐘不會丟失鬧鐘(因為鬧鐘存儲在txt文件中,不會因程式關閉就終止) 缺點 1、沒有使用多線程,鬧鐘響起時只能等待1分鐘或者關閉程式 2、界面設計不夠美觀,後期有時 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...