主頁 > 後端開發 > python基礎語法

python基礎語法

2021-02-22 10:14:34 後端開發

python基礎知識



1 python概述



1.1優點

1.開源,易于維護,

2.可移植,

3.易于使用,簡單優雅,

4.廣闊的標準庫,功能強大,

5.可擴展,可嵌入,

1.12劣勢

1.運行速度慢,(解釋型語言,翻譯為機器碼耗時)

2.代碼不能加密,(發布程式為源代碼)


2 python語法



2.1注釋

  1. 單行注釋:

    #這是一個單行注釋
    
  2. 多行注釋:

    '''
    這是一個多行注釋
    這是一個多行注釋
    '''
    



3 基礎陳述句



3.1 輸出print陳述句

print(“具體的字符”)
print(變數名)

print(“xxxxx %變數型別縮寫” %變數名)

#具體輸出
print("具體的字符")
#變數輸出
int a=10
print(a)
#格式化輸出
print("輸出%d具體字符"%a)
#連接符
print("具體字符","具體字符","具體字符",sep="分隔符(默認為空格)")
print("",end="")#直接連接后方字串
print("",end="\t")#空格后鏈接后方字串
print("",end="\n")#換行后鏈接后方字串
格式符號轉換
%c字符
%s通過str()字串來格式化
%i有符號十進制整數
%d有符號十進制整數
%u無符號十進制整數
%o八進制整數
%x十六進制整數(小寫字母)
%X十六進制整數(大寫字母)
%e索引符號(小寫’e’)
%E索引符號(大寫’E’)
%f浮點實數
%g%f和%e的簡寫
%G%f和%E的簡寫

3.2 輸入input陳述句

接受輸入的變數名 = input("提示資訊")



4 變數及型別

變數名可以是任意資料型別,在程式中用一個變數名表示

變數名必須有 大小寫英文,數字,和下劃線(_)組成

賦值(a=“ABC”)時,python解釋器執行了兩個操作:

  1. 在記憶體中創建了一個"ABC"的字串
  2. 在記憶體中創建了一個名為a的變數,并把它指向了"ABC"



5 運算子



5.1 算數運算子


運算子描述
+加-兩個物件相加
-減-得到復數或是一個數減去另一個數
*乘-兩個數相乘或是回傳一個被重復若干次的字串
/除-X除以Y
%取模-回傳除法的余數
**冪-回傳x的y次冪
//取整數- 向下取接近除數的整數

5.2 比較運算子


運算子描述
==等于-比較物件是否相等
!=不等于-比較兩個物件是否不相等
>大于-回傳X是否大于Y
<小于-回傳X是否小于Y(所有比較運算子回傳1為真,回傳0表示假)
>=大于等于-回傳X是否大于等于Y
<=小于等于-回傳X是否小于等于Y

5.3 賦值運算子


運算子描述
=等于- a=1
+=加法賦值陳述句-“a+=b” = “a=a+b”
-+減法賦值陳述句-“a-=b” = “a=a-b”
*=乘法賦值陳述句-“a*=b” = “a=a*b”
/=除法賦值陳述句-“a/=b” = “a=a/b”
%=取模賦值陳述句-“a%=b” = “a=a%b”
**=冪賦值陳述句-“a* *=b” = “a=a * *b”
//=加法賦值陳述句-“a//=b” = “a=a//b”

5.4 位運算子


運算子描述
&按位與運算子-參與運算的兩個值相應位為1則結果為1,否則為0
|按位或運算子-參與運算的其中一個值為1,結果為1.
^按位異或運算子-當兩相應的二進制位相異時,結果為1.
~按位取反運算子-對資料的每個二進制位取反,即把1變為0,把0變為1.
<<左移動運算子-運算元的各二進制位全部左移若干位由"<<"指定移動的位數,
>>右移動運算子-運算元的各二進制位全部右移若干位由"<<"指定移動的位數,

5.5 邏輯運算子


運算子描述
and布爾"與"-
or布爾"或"-
not布爾"非"-

5.6 成員運算子


運算子描述
in如果在指定數列中找到值回傳true,否則回傳falst
not in如果在指定數列中沒有找到值回傳true,否則回傳falst

5.7 運算子的優先級


運算子描述
**指數(最高優先級)
* / % //乘,除,取模,取整數
±加,減
>> <<左移右移
&位(and)
^ |位運算子
<= << >> >=比較運算子
<> == !=等于運算子
= += -= *= /= %= **=賦值運算子
is is not身份運算子
in not in成員運算子
and or not邏輯運算子



6 條件判斷陳述句


python 指定任何非0和非空值為true ,0或者None為falst

條件判斷陳述句以縮進控制范圍

if 判斷陳述句:#縮進必須同級相同,要不不識別 

	執行陳述句1

elif 判斷陳述句2:
	執行陳述句2
else:
	執行陳述句3



7 回圈陳述句


7.1 for回圈

for i in range(5)#從0開始五個數的陣列
	回圈陳述句
for i in range(0,10,3)#從0開始到10為止,步進值為3
	回圈陳述句
a = ["1","2","3"]
for i in range(len(a))
	print(i,a[i])
for i,x in enumerste(串列)
	print(i,x)  					#列舉函式,i為索引,x為串列值

7.2 while回圈

i = 0
while i < 5:
    回圈陳述句
    i = i++
else:
    回圈陳述句

7.3回圈控制 break continue pass

#break 退出回圈陳述句
#continue 跳過當前回圈
#pass 占位符



8 字串,串列,元組,字典


8.1 字串

python 中的字串可以使用單引號,雙引號和三引號括起來,使用反斜杠\轉義特殊字符

python3原始碼檔案默認以UTF-8編碼,所有字串都是unicode字串

支持字符拼接,截取等多種運算

字串中出現單引號和雙引號時需要前加\轉義

word = '字串'
word1 = "字串"
word2 = """
		字符段落
"""

8.1.1 str[x,y,z]

str = "字串"
print(str[x:y:z])  #@x為起始值,從零開始,y為結束值,不列印結束值,z為步進值,

8.1.2字串連接

str1 = "字串"
str2 = "字串"
print(str1 + str2)

8.1.3字串的常見操作

方法描述描述
capitalize將字串第一個字符轉換為大寫
bytes.decode(encoding=“utf-8”,errors=“strict”)Python3中沒有decode方法,但是我們可以使用bytes物件的decode()方法來解碼給定的bytes物件,這個bytes物件可以由str.encode()來編碼回傳,
encode(encoding=“utf-8”,errors=“strict”)以encoding指定的編碼格式編碼字串,如果出錯默認報一個VaError的例外,除非errors指定的是’ignore’或者’replce’
isalnum()如果字串中至少有一個字符并且所有字符都是字母或者數字則回傳True,否則回傳Falst.
isalpha()如果字串中至少有一個字符并且所有字符都是字母則回傳True,否則回傳Falst.
isnumeric()如果字串中只包含數字字符,則回傳True,否則回傳Falst,
isdigit()如果字串中只包含數字字符,則回傳True,否則回傳Falst,
join(分隔符)以指定字串為分隔符,將所有元素合并為一個新的字串,
len(string)回傳字串的長度,
lstrip()截掉字串左邊的空格或指定字符,
rstrip()洗掉字串末尾的空格
split(str="",num=string.count(str)num=string.count(str))以str為分隔符截取字串,如果num有指定值則只截取num+1個字串,


8.2 串列(list)


串列可以完成大多數集合類的資料結構實作,串列中的元素的型別可以不相同,它支持數字,字串,甚至可以包含串列(所謂嵌套),

串列是寫在方括號[]之間,用逗號分隔開的元素串列,

串列索引值以0為開始值,-1為末尾的開始位置,

串列可以使用+運算子進行拼接,使用*運算子進行重復,

支持 in count 方法

list = ["字串",0,[]]  #@可以存在混合型別

8.2.1 串列方法

方法描述備注
append()在末尾添加元素list.append([1,2])-- list = [ 1 , 2 , [1 , 2]]
extend()在末尾添加元素list.extend([3,4]) – list = [ 1 , 2 , 3 , 4]
insert()在指定位置插入
del 串列名洗掉串列
pop()彈出串列元素
index()查詢指定范圍內是否存在
count()查詢某個元素出現幾次
reverse()反轉排序
sort()從小到大排序
sort(reverse=True)從大到小排序
remove()洗掉指定內容的元素

8.2.2 串列方法介紹

  1. 增:

    list = [1,2]
    
    #在末尾追加元素 append()方法--串列名.append(要添加的字符)         
    list.append("要增加的字符")
    

!!! list.append([1,2]) ---------- list = [ 1 , 2 , [1 , 2]]

#在末尾追加元素 extend()方法–串列名.extend(要追加的元素)
list.extend([元組元素,元組元素])
!!! list.extend([3,4]) ---------- list = [ 1 , 2 , 3 , 4]

#在指定位置插入 insert()方法–串列名.insert(要插入位置的下標,插入的元素)
list.insert(插入索引,插入元素)


2.刪:

```python
list = [0,1,2,3]

#在指定位置洗掉元素 del方法--del 串列名[要洗掉元素的索引]
del list[索引]

#彈出最后一個元素 pop方法--串列名,pop()
list.pop()

#洗掉指定內容的元素 remove()方法--串列名.remove("要洗掉元素的具體內容")
list.remove("指定內容")   #從前開始遍歷,優先洗掉最前方的,

3.改:

list = [1,2,3]

#指定元素進行修改 無具體方法--串列名[修改元素索引] = "具體內容"
list[索引] = ""

4.查:

list = [1,2]
 
#查詢指定元素是否在串列中 if判斷-if 元素 in 串列:
if 1 in list:
    反饋陳述句

#查詢指定范圍內是否存在 index()方法--串列名.index(指定元素,開始元素,結束元素) !!!左包含右不包含
list.index(指定元素,開始,結束(不包含))  #@存在回傳索引,不存在報錯

#查詢某個元素出現幾次 count()方法--串列名.count(元素具體值)
list.count("元素具體值")

5.排:

list = [1,2,3,4]

#反轉排序 reverse()方法--串列名.reverse()
list.reverse()         #@反轉串列順序

#從小到大排序 sort()方法--串列名.sort()
list.sort()           #@從大到小排序

#從大到小排序 sort(reverse=True)方法--串列.sort(reverse=True)
list = sort(reverse=True) #@從大到小排序

 

8.2.3 串列的嵌套

list = [[1,2],[3,4],[5,6]]

串列名[索引][索引] list[索引][索引]


###8.3 元組(tuple)

元組(Tuple)與串列相似,不同之處是元組中的元素不能修改,寫在小括號中,元素之間用逗號隔開,

元組的元素不可變,但是可以包含可變物件,如串列

!!!tuple = (0)時,type(tuple) 時int型的,只有tuple = (0,)type(tuple)tuple型的

支持 in count 方法

8.3.1 元組方法

方法描述備注
len()獲取元組長度
max()獲取元組元素最大值
min()獲取元組元素最小值
tuple()將其他型別物件轉換為元組
del 元組名洗掉元組

8.3.2 元組方法介紹

1.增:

tuple = (1,2,3,4)

#并不是在某一個上增加了,而是新建了,
tup2 = (元素) 
tup1 =(元素)
tup = tup1 + tup2

2.刪:

tuple = (1,2,3,4)

#洗掉整個元組  del 元組名
del tuple

3.查:

tuple = (1,2,3,4)
#查找具體元素  元組名[索引]
tuple[索引]


8.4 字典(dict)


字典時無序的物件的集合,使用鍵值對存盤(key-value),具有極快的查找速度,

鍵(key)必須使用不可變的型別,

同一字典中,鍵(key)必須唯一,

8.4.1方法

方法描述備注
len()獲取字典長度
max()獲取最大key
min()獲取最大value
dict()將其他型別轉換為字典 dict( [ (1,2),(1,2) ] )
get()查找指定鍵的值未查找到不報錯,可以設定默認值
keys()查找所有鍵
values()查找所有值
items()查找所有鍵值
del 字典名洗掉字典
clear()清除字典

8.4.2字典的具體操作

1.查:

info = {"key":"value","key1":"value"}

#查找指定鍵的值  字典名["字典中具體的鍵"]
info["key"]				#如果訪問不存在的鍵會報錯

#查找指定鍵的值  get()方法--字典名.get("字典中具體的鍵","如果未查詢到,回傳的值")
info.get("key")			#如果不存在回傳None
info.get("key","設定默認值")			#如果不存在回傳設定的值,如果找到默認值不發揮作用,

#查找所有鍵  keys()方法--字典名.keys()
info.keys()                #回傳所有鍵(串列)

#查找所有值  values()方法--字典名.values()
info.values()                #回傳所有值(串列)

#查找所有鍵值  items()方法--字典名.items()
info.items()                #回傳所有鍵值(串列)---[(鍵,值),(),()]
for key,value in 字典名,items():
    print("key=%s,value=%s",%(key,value))

2.增:

info = {"key":"value","key1":"value"}

#增加新的鍵值對  字典名["鍵"] = 值
info["key2"] = "value"

3.刪:

info = {"key":"value","key1":"value"}

#洗掉指定鍵值對, del方法 --del 字典名["指定值"]
del info["key"]          #洗掉整個鍵值對,洗掉后再訪問報錯,
del info                 #洗掉字典,再訪問報錯,

#清空字典  clear()方法 --字典名.clear()
info.clear()

4.改:

info = {"key":"value","key1":"value"}

#更改鍵對應的值    字典名["鍵"] = ”值“
info["key"] = "值"


8.5集合(set)


集合和字典類似,也是一組key的集合,但是不存在存盤value,由于key不能重復,所以,再set中,沒有重復的key,

set是無序的,重復元素再set中自動被過濾,

8.5.1方法

方法描述舉例
for回圈遍歷集合
update()更新集合集合名.update(集合名)
add()向集合中添加元素集合名.add(元素)
remove()移除集合中的元素集合名.remove(元素)
pop()彈出元素集合名.pop(元素)
clear()清除集合中的元素集合名.clear()
del洗掉集合del 集合名
len()獲取集合長度集合名.len()
max()獲取最大值集合名.max()
min()獲取最小值集合名.min()
set()將其他型別轉換為集合set()

8.6 總結


型別是否有序是否可變
串列[]有序可變型別
元組()有序不可變型別
字典{}無序key不可變,value可變
集合{}無序可變型別(不可重復)



9 轉義字符


有些字符無法在陳述句中直接使用,需要轉義后才能使用,

轉義字符描述
(在行尾時)續行符
\\反斜杠符號
\’單引號
\"雙引號
\a響鈴
\b退格
\000空格
\n換行
\v縱向制表符
\t橫向制表符
\r回車
\f換頁
\oyy八進制數,yy代表字符,列如:\o12代表換行,其中o是字母
\xyy十六進制數,yy代表的字符,列如:\x0a代表換行,
print("字串")#@字串中的\為轉義字符,進行轉義,
print(r"字串")#@要列印的字串前加 r 表示字串其中轉義\不進行轉義,直接輸出,



10 函式



10.1 概念

1.開發程式時,需要某塊代碼多次,但是為了提高撰寫效率以及代碼的重用,所以把具有獨立功能的代碼塊組織為一個小模塊,這就是函式,

2.函式可以有多個return 但是只要執行一個return就算函式呼叫完成,

3.函式名不能重復,

4.帶參函式,如果在定義時有形參,那么在呼叫時就應該傳遞引數

5.呼叫時,實參的個數和先后順序應該和定義函式中的要求一致,

#不帶引數
del 函式名():
    函式體(pass)

#帶引數
del 函式名(引數1,引數2):
    函式體(pass)

#帶回傳值-------只有有return才有回傳值
del 函式名(引數1,引數2):
    函式體(pass)
	return 引數
變數名 = 函式名()    		   #接收單回傳值
del 函式名(引數1,引數2):
    函式體(pass)
	return 引數,引數
變數名,變數名 = 函式名()     #接收多個回傳值



10.2 全域變數和區域變數

全域變數:在整體函式上宣告的變數,可以在所有函式上使用,

區域變數:在函式體中宣告的變數,只能在本函式上使用,

在函式中,全域變數和區域變數同名時,優先使用的是區域變數,要使用全域變數需要在宣告之前加 global 關鍵字

a = 1			##全域變數
del 函式名():
	a = 2		##區域變數,會被優先修改
print(a)		##結果為1

a = 1			##全域變數
del 函式名():
	global a = 2		##宣告使用全域變數
print(a)		##結果為2



11 檔案



11.1 檔案操作


1.打開

##打開指定路徑,檔案名的檔案,使用設定的模式,
變數名1 = open("檔案名","打開模式")

2.關閉

變數名1 = open("檔案名","打開模式")

#關閉已經打開的檔案,
變數名1.close()

3.讀

變數名1 = open("檔案名","打開模式")

#讀取打開檔案指定字符的內容	read()方法--打開檔案的變數名.read(讀取字符個數)
#read()方法開始定位在檔案頭,每執行一次向后移動指定字符,
變數名1.read(5)    	#讀取五個字符
變數名1.read(5)		#會繼續往后讀取5個字符,與上一句代碼讀取不相同 !!!!!!

#讀取打開檔案所有行的內容 readlines()方法--打開檔案的變數名.readlines()
變數名1.readlines() 		#回傳每行一個元素的串列

#讀取打開檔案指定行的內容 readline()方法--打開檔案的變數名.readline()
#readline()方法開始定位在檔案頭,每執行一次向后移動指定行,
變數名1.readline() 		#回傳每行一個元素的串列

4.檔案重命名

引入os模塊,使用os中的rename()進行檔案重命名,

import os

#檔案重命名  rename()方法--os.rename("需要修改的檔案名","新的檔案名")
os.rename("舊檔案名","新檔案名")

5.洗掉檔案

引入os模塊,使用os中的remove()進行檔案洗掉,

import os

#檔案洗掉  remove()方法--os.remove("要洗掉的檔案名")
os.remove("要洗掉的檔案名")

11.2打開模式


訪問模式說明備注
r以只讀的方式打開檔案,檔案的指標將會放在檔案的開頭,這是默認的模式,如果不存在檔案會報錯
w打開一個檔案只用于寫入,如果該檔案已經存在則將其覆寫,如果該檔案不存在,創建新檔案,
a打開一個檔案用于追加,如果該檔案已經存在,檔案指標將會放在檔案的結尾,也就是說,新的內容會被寫到已有的內容之后,如果該檔案不存在,創建新檔案進行寫入,
rb以二進制格式打開一個檔案用于只讀,檔案指標將會放在檔案的開頭,這是默認的模式,
wb以二進制格式打開一個檔案用于寫入,檔案的指標將會放在檔案的開頭,這是默認的模式,
ab以二進制格式打開一個檔案用于追加,檔案指標將會放在檔案的結尾,也就是說,新的內容會被寫到已有的內容之后,如果該檔案不存在,創建新檔案進行寫入,
r+打開一個檔案用于讀寫,檔案的指標將會放在檔案的開頭,
w+打開一個檔案用于讀寫,如果該檔案已經存在則將其覆寫,如果該檔案不存在,創建新檔案,
a+打開一個檔案用于讀寫,如果檔案存在,檔案指標將會放到檔案的結尾,檔案打開時會是追加模式,如果檔案不存在,創建新檔案用于讀寫,
rb+以二進制格式打開一個檔案用讀寫,檔案指標將會放在檔案開頭,
wb+以二進制格式打開一個檔案用于讀寫,如果該檔案已經存在則將其覆寫,如果該檔案不存在則創建新的檔案,
ab+以二進制格式打開一個檔案用于讀寫,如果檔案已存在,檔案指標將會放到檔案的結尾,如果檔案不存在,創建新的檔案用于讀寫,



12 例外


例外指的是在程式運行程序中發生的例外事件,通常是由外部問題(如硬體錯誤、輸入錯誤)所導致的,在Java等面向物件的編程語言中例外屬于物件,

捕獲例外:try: #@可能出現例外的代碼放在try中

處理例外:except 捕獲例外型別: #@處理例外的代碼放在except中

try 可以嵌套

例外處理的常用操作:

#捕獲單個例外
try:
    可能發生例外的代碼塊
except 可能發生的例外型別 :
	若發生例外時執行的陳述句
    
#捕獲多個例外
try:
    可能發生例外的代碼塊
except (例外1,例外2):		#將可能出現的例外填寫在小括號中
	若發生例外時執行的陳述句

#捕獲多個例外
try:
    可能發生例外的代碼塊
except (例外1,例外2as result:			#result 錯誤資訊
	若發生例外時執行的陳述句
    print(result)				#列印錯誤資訊,錯誤資訊以字串形式被列印

#捕獲通用例外
try:
    可能發生例外的代碼塊
except Exception as result:		# Exception可以承接任何例外,可以列印result錯誤資訊,也可以不列印錯誤資訊,
	若發生例外時執行的陳述句
    print(result)
    
#try------finally  finally:后的代碼不論例外是否發生,都會執行
try:
    可能發生例外的代碼塊
except 可能發生的例外型別 :
	若發生例外時執行的陳述句
finally:
    不論是否例外都執行的代碼



常用方法




random.randint(起始值,結束值) 隨機生成int型數

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/262047.html

標籤:python

上一篇:來找獨特數啊

下一篇:試驗資料的篩選和質量可視化

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【C++】Microsoft C++、C 和匯編程式檔案

    ......

    uj5u.com 2020-09-10 00:57:23 more
  • 例外宣告

    相比于斷言適用于排除邏輯上不可能存在的狀態,例外通常是用于邏輯上可能發生的錯誤。 例外宣告 Item 1:當函式不可能拋出例外或不能接受拋出例外時,使用noexcept 理由 如果不打算拋出例外的話,程式就會認為無法處理這種錯誤,并且應當盡早終止,如此可以有效地阻止例外的傳播與擴散。 示例 //不可 ......

    uj5u.com 2020-09-10 00:57:27 more
  • Codeforces 1400E Clear the Multiset(貪心 + 分治)

    鏈接:https://codeforces.com/problemset/problem/1400/E 來源:Codeforces 思路:給你一個陣列,現在你可以進行兩種操作,操作1:將一段沒有 0 的區間進行減一的操作,操作2:將 i 位置上的元素歸零。最終問:將這個陣列的全部元素歸零后操作的最少 ......

    uj5u.com 2020-09-10 00:57:30 more
  • UVA11610 【Reverse Prime】

    本人看到此題沒有翻譯,就附帶了一個自己的翻譯版本 思考 這一題,它的第一個要求是找出所有 $7$ 位反向質數及其質因數的個數。 我們應該需要質數篩篩選1~$10^{7}$的所有數,這里就不慢慢介紹了。但是,重讀題,我們突然發現反向質數都是 $7$ 位,而將它反過來后的數字卻是 $6$ 位數,這就說明 ......

    uj5u.com 2020-09-10 00:57:36 more
  • 統計區間素數數量

    1 #pragma GCC optimize(2) 2 #include <bits/stdc++.h> 3 using namespace std; 4 bool isprime[1000000010]; 5 vector<int> prime; 6 inline int getlist(int ......

    uj5u.com 2020-09-10 00:57:47 more
  • C/C++編程筆記:C++中的 const 變數詳解,教你正確認識const用法

    1、C中的const 1、區域const變數存放在堆疊區中,會分配記憶體(也就是說可以通過地址間接修改變數的值)。測驗代碼如下: 運行結果: 2、全域const變數存放在只讀資料段(不能通過地址修改,會發生寫入錯誤), 默認為外部聯編,可以給其他源檔案使用(需要用extern關鍵字修飾) 運行結果: ......

    uj5u.com 2020-09-10 00:58:04 more
  • 【C++犯錯記錄】VS2019 MFC添加資源不懂如何修改資源宏ID

    1. 首先在資源視圖中,添加資源 2. 點擊新添加的資源,復制自動生成的ID 3. 在解決方案資源管理器中找到Resource.h檔案,編輯,使用整個專案搜索和替換的方式快速替換 宏宣告 4. Ctrl+Shift+F 全域搜索,點擊查找全部,然后逐個替換 5. 為什么使用搜索替換而不使用屬性視窗直 ......

    uj5u.com 2020-09-10 00:59:11 more
  • 【C++犯錯記錄】VS2019 MFC不懂的批量添加資源

    1. 打開資源頭檔案Resource.h,在其中預先定義好宏 ID(不清楚其實ID值應該設定多少,可以先新建一個相同的資源項,再在這個資源的ID值的基礎上遞增即可) 2. 在資源視圖中選中專案資源,按F7編輯資源檔案,按 ID 型別 相對路徑的形式添加 資源。(別忘了先把檔案拷貝到專案中的res檔案 ......

    uj5u.com 2020-09-10 01:00:19 more
  • C/C++編程筆記:關于C++的參考型別,專供新手入門使用

    今天要講的是C++中我最喜歡的一個用法——參考,也叫別名。 參考就是給一個變數名取一個變數名,方便我們間接地使用這個變數。我們可以給一個變數創建N個參考,這N + 1個變數共享了同一塊記憶體區域。(參考型別的變數會占用記憶體空間,占用的記憶體空間的大小和指標型別的大小是相同的。雖然參考是一個物件的別名,但 ......

    uj5u.com 2020-09-10 01:00:22 more
  • 【C/C++編程筆記】從頭開始學習C ++:初學者完整指南

    眾所周知,C ++的學習曲線陡峭,但是花時間學習這種語言將為您的職業帶來奇跡,并使您與其他開發人員區分開。您會更輕松地學習新語言,形成真正的解決問題的技能,并在編程的基礎上打下堅實的基礎。 C ++將幫助您養成良好的編程習慣(即清晰一致的編碼風格,在撰寫代碼時注釋代碼,并限制類內部的可見性),并且由 ......

    uj5u.com 2020-09-10 01:00:41 more
最新发布
  • Rust中的智能指標:Box<T> Rc<T> Arc<T> Cell<T> RefCell<T> Weak

    Rust中的智能指標是什么 智能指標(smart pointers)是一類資料結構,是擁有資料所有權和額外功能的指標。是指標的進一步發展 指標(pointer)是一個包含記憶體地址的變數的通用概念。這個地址參考,或 ” 指向”(points at)一些其 他資料 。參考以 & 符號為標志并借用了他們所 ......

    uj5u.com 2023-04-20 07:24:10 more
  • Java的值傳遞和參考傳遞

    值傳遞不會改變本身,參考傳遞(如果傳遞的值需要實體化到堆里)如果發生修改了會改變本身。 1.基本資料型別都是值傳遞 package com.example.basic; public class Test { public static void main(String[] args) { int ......

    uj5u.com 2023-04-20 07:24:04 more
  • [2]SpinalHDL教程——Scala簡單入門

    第一個 Scala 程式 shell里面輸入 $ scala scala> 1 + 1 res0: Int = 2 scala> println("Hello World!") Hello World! 檔案形式 object HelloWorld { /* 這是我的第一個 Scala 程式 * 以 ......

    uj5u.com 2023-04-20 07:23:58 more
  • 理解函式指標和回呼函式

    理解 函式指標 指向函式的指標。比如: 理解函式指標的偽代碼 void (*p)(int type, char *data); // 定義一個函式指標p void func(int type, char *data); // 宣告一個函式func p = func; // 將指標p指向函式func ......

    uj5u.com 2023-04-20 07:23:52 more
  • Django筆記二十五之資料庫函式之日期函式

    本文首發于公眾號:Hunter后端 原文鏈接:Django筆記二十五之資料庫函式之日期函式 日期函式主要介紹兩個大類,Extract() 和 Trunc() Extract() 函式作用是提取日期,比如我們可以提取一個日期欄位的年份,月份,日等資料 Trunc() 的作用則是截取,比如 2022-0 ......

    uj5u.com 2023-04-20 07:23:45 more
  • 一天吃透JVM面試八股文

    什么是JVM? JVM,全稱Java Virtual Machine(Java虛擬機),是通過在實際的計算機上仿真模擬各種計算機功能來實作的。由一套位元組碼指令集、一組暫存器、一個堆疊、一個垃圾回收堆和一個存盤方法域等組成。JVM屏蔽了與作業系統平臺相關的資訊,使得Java程式只需要生成在Java虛擬機 ......

    uj5u.com 2023-04-20 07:23:31 more
  • 使用Java接入小程式訂閱訊息!

    更新完微信服務號的模板訊息之后,我又趕緊把微信小程式的訂閱訊息給實作了!之前我一直以為微信小程式也是要企業才能申請,沒想到小程式個人就能申請。 訊息推送平臺🔥推送下發【郵件】【短信】【微信服務號】【微信小程式】【企業微信】【釘釘】等訊息型別。 https://gitee.com/zhongfuch ......

    uj5u.com 2023-04-20 07:22:59 more
  • java -- 緩沖流、轉換流、序列化流

    緩沖流 緩沖流, 也叫高效流, 按照資料型別分類: 位元組緩沖流:BufferedInputStream,BufferedOutputStream 字符緩沖流:BufferedReader,BufferedWriter 緩沖流的基本原理,是在創建流物件時,會創建一個內置的默認大小的緩沖區陣列,通過緩沖 ......

    uj5u.com 2023-04-20 07:22:49 more
  • Java-SpringBoot-Range請求頭設定實作視頻分段傳輸

    老實說,人太懶了,現在基本都不喜歡寫筆記了,但是網上有關Range請求頭的文章都太水了 下面是抄的一段StackOverflow的代碼...自己大修改過的,寫的注釋挺全的,應該直接看得懂,就不解釋了 寫的不好...只是希望能給視頻網站開發的新手一點點幫助吧. 業務場景:視頻分段傳輸、視頻多段傳輸(理 ......

    uj5u.com 2023-04-20 07:22:42 more
  • Windows 10開發教程_編程入門自學教程_菜鳥教程-免費教程分享

    教程簡介 Windows 10開發入門教程 - 從簡單的步驟了解Windows 10開發,從基本到高級概念,包括簡介,UWP,第一個應用程式,商店,XAML控制元件,資料系結,XAML性能,自適應設計,自適應UI,自適應代碼,檔案管理,SQLite資料庫,應用程式到應用程式通信,應用程式本地化,應用程式 ......

    uj5u.com 2023-04-20 07:22:35 more