Python學習20230830
Python的安裝
1、官網安裝IDLE,Python的環境(免費)。
2、安裝PyCharm(社區版免費)。
pycharm中有個雙擊shift就會彈出全局搜索框,實在太麻煩了,這裏直接禁用。settings---->advanced settings---->user interface---->disable double modifier key shortcuts。
3、安裝Typora。
4、安裝個IPython更好的交互環境,裝上也不影響(有高亮等)。
5、如果python安裝失敗,應該是缺少底部組件,查找vs tool補件進行安裝。
6、文本編輯工具Visual Studio Code(好不好用我也不知道,免費)
Python的庫的安裝PIP
命令中直接pip install ipyhton的話會去國外網,所以需要鏡像網站(一般走豆瓣鏡像,鏡像網站就是將一個完全相同的站點放到幾個服務器,分別有自己的URL,實際就是將國外的網站搬過來)。
所以使用(全局配置):
pip config set global.index-url https://pypi.doubanio.com/simple
————————————————————————————————
安裝其他的庫則在命令中編寫:pip install XXX 比如 pip install ipython。
.py文件可以直接拖到命令中顯示絕對路徑,進行執行python xxx.py。
快捷鍵
(Pycharm是有代碼的歷史記錄的)
CTRL+Y=》刪除這行
CTRL+D=》複製上一行
菜單欄上CODE=>REFORMAT CODE將格式轉換爲標準格式,快捷鍵:CTRL+ALT+L(會和QQ鎖定衝突,可以修改其中一個的快捷鍵)
CTRL+/ ===> 註釋代碼
CTRL+左鍵 ===> 點擊函數,就能進到它的代碼中
SHIFT+TAB ====> 取消縮進
賦值
# START_1 賦值
# 改變變量名,直接變量右鍵refactor,rename就可以統一修改了
# a = input('a = ') # 輸入的默認是字符,int() ——integer
a, b = 1, 2
print(f'a = {a}, b = {b}')
a, b = 35, a
print(f'a = {a}, b = {b}') # 輸出結果是a= 35, b= 1,右邊的就是個局部變量1,而不是a
(a, b) = (3, 4)
print(f'a = {a}, b = {b}')
(a, b, c) = [5, 6, 7]
print(f'a = {a}, b = {b}, c = {c}')
(a, b, c) = ["字符串a的值", "字符串b的值", "字符串c的值"]
print(f'a = {a}, b = {b}, c = {c}')
# END_1
變量 - 數據的載體
- 變量名字母(Unicode字符)、數字、下劃線,不能使用特殊字符,數字不能開頭
- 變量名是區分大小寫的(大小寫敏感)
- 不能使用python的關鍵字(python代碼中有特殊含義的單詞)和保留字(已經被python用過的)
- 見名知意(看到變量的名字,就能知道它代表了什麼意思)
- 變量的命名使用全小寫,多個單詞用下劃線進行分隔(Snake case :比如student_age)
數據類型
python的數據類型是動態的
type(a)得到變量類型
123e-5浮點數,表示123*10^-5=0.00123
數據類型 int, float, str——string, bool——boolean, complex(3+5j)
進制
十進制轉換二進制,一直除二,結果是倒着排的。
# START_4 十進制、八進制、十六進制、二進制計數法
data_decimal = 110 # 十進制計數法
data_octal = 0o110 # 八進制計數法
data_hexadecimal = 0x110 # 十六進制計數法,a表示10
data_binary = 0b110 # 二進制計數法
print(data_decimal, data_octal, data_hexadecimal, data_binary)
# bin--->十進制轉換爲二進制,oct--->十進制轉換八進制,hex--->十進制轉換十六進制
print(bin(110), oct(110), hex(110))
# END_4
初始代碼添加設置
Windows中的pycharm路徑爲settings=>file and code templates=>python script=>添加代碼模板
${}佔位符裏面有些是可以直接獲取到的,比如NAME是代碼名字,USER是系統名,DATE是時間。
"""
${NAME} -
Author: ${USER}
Date: ${DATE}
"""
格式化輸出
# START 格式化輸出
a = 10
b = 2.12345
print('第一種:', a, '+', b, '=', a + b)
print('第二種:%d + %.1f = %f' % (a, b, a + b)) # 使用佔位符,%f表示float格式,%.1f保留一位小數
print('第二種*:%d %% %f = %f' % (a, b, a % b)) # %%轉義
# f - format - 格式化字符串
print(f'第三種:{a} + {b} = {a + b}') # python3.6之後的
print(f'第三種*:{a} + {b:.3f} = {a + b:.2f}') # :.nf保留位數
# END
# START float的bug問題
print(0.1 + 0.2 + 0.3)
print(0.3 + 0.2 + 0.1)
print((0.1 + 0.2 + 0.3) == (0.3 + 0.2 + 0.1)) # 結果是false
print(round(0.1 + 0.2 + 0.3, 1) == (0.3 + 0.2 + 0.1)) # 結果是true
# END
代碼
直接把全部代碼也放上來,防止以後丟失~~
"""
example01 - 初步學習Python
1、賦值
2、算式運算
3、數據類型
4、進制
5、格式化輸出
6、浮點數計算的bug
7、運算符以及邏輯運算的應用
Author: danlis
Date: 2023/08/30
"""
# 註釋單獨一行前面不需要空格,但是如果跟在後面,前面需要加兩個空格。
print('hello,world', end='輸出結束後續跟的內容\n') # print默認是換行,不換行的話,可以設置end值。加註釋需要空格。
# START_1 賦值
# 改變變量名,直接變量右鍵refactor,rename就可以統一修改了
# a = input('a = ') # 輸入的默認是字符,int() ——integer
a, b = 1, 2
print(f'a = {a}, b = {b}')
a, b = 35, a
print(f'a = {a}, b = {b}') # 輸出結果是a= 35, b= 1,右邊的就是個局部變量1,而不是a
(a, b) = (3, 4)
print(f'a = {a}, b = {b}')
(a, b, c) = [5, 6, 7]
print(f'a = {a}, b = {b}, c = {c}')
(a, b, c) = ["字符串a的值", "字符串b的值", "字符串c的值"]
print(f'a = {a}, b = {b}, c = {c}')
# END_1
# START_2 python的算式運算
a = 10
b = 2.5
print(a // b) # 整除
print(a ** b) # 求冪
print(a / b)
print(a % b) # 求餘數,一般呢,都會進行空格
print(a + b)
print(a * b)
# END_2
# START_3 數據類型 int, float, str——string, bool——boolean, complex
data_int = 1 # 整數類型
data_float = 1.4 # 浮點數類型
data_str = '字符串string' # 字符串類型
data_true = True # 布爾類型
data_complex = 3 + 5j # 複數類型complex
print(data_int, type(data_int)) # 可以使用逗號隔開,輸出多個值
print(data_float, type(data_float))
data_float = 123e-5
print("浮點數123e-5", data_float) # 浮點數的科學計數法,123*10^-5
print(data_str, type(data_str))
print(data_true, type(data_true))
print(data_complex, type(data_complex))
# END_3 數據類型
# START_4 十進制、八進制、十六進制、二進制計數法
data_decimal = 110 # 十進制計數法
data_octal = 0o110 # 八進制計數法
data_hexadecimal = 0x110 # 十六進制計數法,a表示10
data_binary = 0b110 # 二進制計數法
print(data_decimal, data_octal, data_hexadecimal, data_binary)
# bin--->十進制轉換爲二進制,oct--->十進制轉換八進制,hex--->十進制轉換十六進制
print(bin(110), oct(110), hex(110))
# END_4
# START_5 格式化輸出
b = 2.12345
print('第一種:', a, '+', b, '=', a + b)
print('第二種:%d + %.1f = %f' % (a, b, a + b)) # 使用佔位符,%f表示float格式,%.1f保留一位小數
print('第二種*:%d %% %f = %f' % (a, b, a % b)) # %%轉義
# f - format - 格式化字符串
print(f'第三種:{a} + {b} = {a + b}') # python3.6之後的
print(f'第三種*:{a} + {b:.3f} = {a + b:.2f}') # :.nf保留位數
# END_5
# START_6 float的bug問題
print(0.1 + 0.2 + 0.3)
print(0.3 + 0.2 + 0.1)
print((0.1 + 0.2 + 0.3) == (0.3 + 0.2 + 0.1)) # 結果是false
print(round(0.1 + 0.2 + 0.3, 1) == (0.3 + 0.2 + 0.1)) # 結果是true
# END_6
# START_7 運算符以及邏輯運算的應用
# 賦值運算符:右邊的值賦給左邊(變量)---> =
# 算術運算符:+ - * / % ** //整除
# 複合的賦值運算符: = += -= *= %= **= /=
# 關係運算符: > < >= <= == != ---> 產生布爾值(True或者False)
# 邏輯運算符:把多個布爾值處理成一個布爾值 ---> and與,or或,not非。and和or兩個運算符有短路功能,因此也被稱爲短路運算符
a, b = 4, 7
a *= b + 3 # a=a*(b+3)也就是說右邊的式子是作爲一體的a*=(b+3)
print(f'a = {a}, b = {b}')
# 輸入一個年份,判斷這個年份是不是閏年。規則:四年一閏,百年不閏,四百年又閏。
data_year = int(input("請輸入年份,我將判斷是否是閏年:"))
flag1 = data_year % 4 == 0 # 是4的倍數,邏輯運算大於賦值運算。
flag2 = data_year % 100 != 0 # 不能是100的倍數。
flag3 = data_year % 400 == 0 # 是400的倍數。
print(flag3 or (flag2 and flag1))
# 輸入三角形的三條邊的長度,判斷是否構成三角形。規則:任意兩邊長度和大於第三邊。
# END_7