Python的重要性
python就業方向
Python的歷史
python創造于1989年,荷蘭人吉多.范羅蘇姆
現在是Python3版本
09
Python的特點
1)跨平臺
2)解釋型語言
3)交互式
4)面向對象:一切皆對象
5)具有一個強大的標準庫
6)Python社區提供了大量的第三方模塊
7)
缺點:
1)運行速度慢
2)國內市場較小
3)中文資料匱乏
這是一個在電腦中已經安裝的模塊的文檔
題目:
設置pyCharm自己的模板
File-setting-Editor-File and Code Template-python Script
模板
${PROJECT_NAME} - 當前Project名稱;
${NAME} - 在創建文件的對話框中指定的文件名;
${USER} - 當前用戶名;
${DATE} - 當前系統日期;
${TIME} - 當前系統時間;
${YEAR} - 年;
${MONTH} - 月;
${DAY} - 日;
${HOUR} - 小時;
${MINUTE} - 分鐘;
${PRODUCT_NAME} - 創建文件的IDE名稱;
${MONTH_NAME_SHORT} - 英文月份縮寫, 如: Jan, Feb, etc;
${MONTH_NAME_FULL} - 英文月份全稱, 如: January, February, etc;
模板如下:
#author:dq
#project:${PROJECT_NAME}
#date:${YEAR}年${MONTH}月${DAY}日
解釋器與解釋器
1)
計算機只能識別機器語言
所以需要把其他語言翻譯為機器語言
2)
編譯:代碼執行前將源代碼一次性轉換成目標代碼的過程
類似英語中的全文翻譯。
執行編譯過程的程序叫做編譯器。
特點:速度快,跨平臺性差
解釋:將源代碼逐條轉換成目標代碼同時逐條運行的過程。(在代碼執行的同時一邊執行一邊編譯)
類似英語中的同聲傳譯
特點:速度慢,跨平臺性好
Python的基礎知識
1.python的源程序
1)python源程序就是一個特殊格式的文本文件,可以使用任意文本編輯軟件做python的開發
2)文件擴展名.py
2.python代碼中容易出現的常見錯誤
1)不能把多條語句寫在一行,因為每行代碼只否則完成一個動作
2)縮進錯誤,每行代碼前面不要增加空格
4個空格代表一個縮進
3.Python2默認不支持中文,python3支持中文
因為ASCII碼只包含256個字符,不支持中文
4.在終端中直接使用Python
cmd中輸入python再回車
使用exit()或Ctrl+D退出Python模式
IDE
集成開發環境,集成了開發軟件需要的所有工具
如:PyCharm,Idea
恢復PyCharm的初始設置
1.恢復PyCharm的初始設置(Linux)
在linux中列出所有文件:ls -la
計算機的使用方式
1.接口
2.用戶界面
TUI文本交互界面
GUI圖形化交互界面
命令行
1.任何計算機的操作系統都包含有命令行(Windows,linux,MacOS)
2.命令行有多個不同的名字
Shell,終端,Dos
3.Windows下的命令行:
通過cd xxx來切換磁盤
cd…回到初始磁盤
4.常用的Dos命令
1)dir查看當前目錄下的所有文件(夾)
如:dir C:\Users\pc
2)cd xx進入指定目錄
如:cd Desktop
.代表當前目錄
…代表上一級目錄
cd…回到初始磁盤,回到上一級目錄
3)小技巧
方向鍵上下,查看歷史的命令記錄
tab鍵自動補全命令
4)md創建一個目錄
如:
md dqtoday
5)rd刪除一個目錄
如:
rd d1
直接刪除
6)del刪除一個文件
如:
del d1
會進行詢問是否刪除
7)cls清除屏幕
如:cls
8)直接輸入文件名稱.文件類型打開文件
如:attendance.xlsx
命令的語法:
命令 【參數】【選項】
環境變量
1.環境變量定義
2.環境變量界面:
上面:用戶環境變量,只對當前用戶起作用
下面:系統環境變量,對所有用戶起作用
建議只對用戶環境變量修改
3.path環境變量
系統尋找文件:
1)當前目錄下
2)path環境變量的路徑中
多個路徑之間使用;隔開
文本和字符集
1.文本:
純文本(保存文字):如:txt
富文本(包括文本以外):如:word文檔
純文本在計算機底層也會轉換為二進制保存
2.編碼與解碼:
編碼:字符–>二進制
解碼:二進制–>字符(人看得懂的)
3.常見的字符集:
utf-8(統一編碼,漢字占三個字節)、Big5(繁體中文)、GBK(國標擴,漢字占兩個字節,簡體中文)
UTF-8:使用1-5個字節
UTF-16:使用2-4個字節
UTF-32:使用4個字節
計算機語言
機器語言:二級制
匯編語言(符號語言):通過符號代替機器碼:
- 匯編:符號–>機器碼
- 反匯編:機器碼–>符號(看得懂)
高級語言:
java,c…
編程的幾個常用概念
1.表達式:類似于數學公式,不對程序產生一定的影響
7+4
2.語句:完成某種功能,會對程序產生一定的影響
print()
a=10
3.程序:由語句和表達式構成
a=10
print(str(a+100))
4.函數:
函數:是語句,用來完成特定的功能
分類:
內置函數(python解釋器自帶的)
自定義函數(程序員自己創建的函數)
python內置函數(在python手冊中可以查看)
Python規范
1.4個空格(Tab)代表一個縮進
2.導入包
import random導入一個
form random import *導入相關的所有
3.空格:
在運算符兩側各加一個空格,逗號后面加一個空格
4.語句過長,使用\續行符或()
如:
3+5
\6+6
或
(3+5
9+0)
5。使用小駝峰或大駝峰
aMM
MaaLpp
Python基礎語法
1.定義變量
變量名=變量值
a=78
a的數據類型隨著變量值而變化
2.變量的命名規則:
以字母和下劃線開頭,包含數字,字母,下劃線,中文,不能使用關鍵字
題目:
HTML5不區分大小寫,其他的java,C,C++,Python,JavaScript都區分大小寫
3.數據類型
1)數字:
int(整型)
long(長整型)
float(浮點型)
complex(復數):實部+虛部=1+8i
2)布爾類型:
Ture
False
3)字符串
0–n-1
-n-(-1)
4)集合類型:
List(列表):數組
Tuple(元組):內容不能改變
Dictionary(字典):相當于java的Map,鍵值對
通過type查看數據類型
a='xx'
#輸出<class 'str'>
print(type(a))
3.查看關鍵字
import keyword
print(keyword.kwlist)
代碼:
#查看關鍵字
import keyword
print(keyword.kwlist,sep=' ')
#輸出
#['False', 'None', 'True', '__peg_parser__',
# 'and', 'as', 'assert', 'async', 'await',
# 'break', 'class', 'continue', 'def', 'del',
# 'elif', 'else', 'except', 'finally', 'for',
# 'from', 'global', 'if', 'import', 'in', 'is',
# 'lambda', 'nonlocal', 'not', 'or', 'pass',
# 'raise', 'return', 'try', 'while', 'with', 'yield']
4.print()輸出函數
print(’xx‘,‘yy’,sep=’ ‘,end=’\n’)
使用’‘或“”都可以
使用,隔開
sep=‘x’每個值之間使用’x’進行間隔
end=’\n’最后換行
#使用sep=‘**’分隔每個字符串,end=';'最后輸出;
print('1234', '2345678','dfhgjuk',sep='**', end=';' )
m,n=1,3
print(m,n,sep=' ')
5.input()輸入函數
age=input(‘defrgt’)
‘wdefrt’是對用戶的提示,將用戶的輸入值賦給age,是字符串
注意:得到的是字符串,要進行運算需要int(a),轉換為整型等
題目:
1)
2)
60*0.4=24.0
默認為浮點數
6.不同進制的表示
支持:
0x十六進制
0o八進制
內置函數:
bin()轉二進制
oct()轉八進制
hex()轉16進制
print(bin(223),oct(23),hex(123),sep=' ',end='.')
7.數據類型轉換
int()轉整型
float()轉浮點型
str()轉字符串
bool()轉布爾型:
有具體數值的是True,如1,90,‘2345’
0,’’,“”,(),[],{}等為空的為False
chr()返回整數對應的ASCII碼
ord()返回ASCII碼對應的整數
#數據類型轉換
a='2345'
print(str(int(a)+1)+str(2345)+str(float(88))+str(bool("")))
#ASCII碼與整數的轉換
#輸出C 1
print(chr(67),chr(0x31),chr(0o11),sep=' ',end='\n')
#輸出 97 112
print(ord('a'),ord('p'),sep=' ',end='\n')
8.算術運算符
1)
%取模:求余數
2%3==2…0
所以余數為0
**冪運算:
x**3==x^3
//求商
9/4=2…1
取2,去掉余數
2)兩個整數相除,得到浮點數
所以如果要輸出整數的話,使用int(a)
加法運算符:只能連接兩個字符串+,不能整數+字符串(×)
乘法運算符:字符串*整數==將字符串重復多少次
print('spam' + 'spamspam')
print('spam' * 3)#spamspamspam
題目:
1/2除法,默認為浮點數
1//2求商
4)復合賦值運算符
x+=2:x=x+2
x%=2:求x/2的余數
x//=2:求x/2的商
x**=2:x=x^2
#復合賦值運算符
a=4//2#2求商
print(a,end='\n')
a**=2#求a^2求冪4
print(a,end='\n')
題目:
x%y求余數
x**y=x^y
5)傳遞賦值
等號連接:a=b=c=‘2345’
同步賦值:m,n=3,7
組包:多個變量賦給同一個值(元組)
x=‘hello’,‘wer’,‘234’
print(x)
拆包:一個變量賦給多個變量(對應的關系)
str=‘1234’
a,b,c,d=str
代碼:
#等號連接
x=y=z='989'
print(x,y,z,sep=' ',end='\n')
#同步賦值
m,n=1,3
print(m,n,sep=' ',end='\n')
#組包
d='345','345','iop'
#輸出('345', '345', 'iop')
print(d,end='\n')
#拆包
a,b,c=d
print(a,b,c,sep=' ',end='\n')
6)可變長度賦值,使用*
o,*p,q=9,23,43,54,0
o=9
*p=23,43,54(可變長度)
q=0
代碼:
#可變賦值長度
a,*p,b='d','b',3,45,45,'l'
#輸出d l
print(a,b,sep=' ',end='\n')
#輸出b 3 45 45
print(*p,end='\n')
#輸出<class 'str'>
print(type(a))
#但不能使用type(*p),報錯,*p里面存儲了多種數據類型
7)比較運算符
1.
數字與字符串比較,永遠是False
如:
a=‘a’
a==97:False
#比較字符串
a='97'
#輸出 False
print(a==97)
常用:>=,<=,!=
可以直接18.6 <= r <= 24.9
#1
#if 18.6 <= r <= 24.9:效果等同
#2
if (r >= 18.6 and r <= 24.9):
#3
if 24.9>=r>=18.6
題目:
ASCII碼
小寫字母比大寫字母大32
8)與或非
1.
and 與
or 或
not 非
2.
短路與:and,第一個為False,后面就不再計算了,直接為false
短路或:or,第一個為True,后面就不再計算了,直接為true
# 短路與
#輸出no
if (1 == 8 and 1 == 1):print('yes')
else:print('no')#短路或
#輸出ok
if(1==1 or 1==6):print('ok')
else:print('mm')
邏輯運算的結果:
and所有都是Ture,取最后一個值;不然就輸出遇到的第一個為False的值
or所有都是False,取最后一個值;不然就輸出遇到的第一個為True的值
# 與或非
# and所有都為True,輸出最后一個89
print(1 and '3' and 'ui' and '89')
# or所有都為False,輸出最后一個{}
print('' or [] or {})# and輸出遇到的第一個false:0
print('l' and '78' and 0 and {})
# or輸出遇到的第一個true:88
print('' or {} or '88')
與或非案例:
# 2_1
# 寫出判斷一個數是否能夠被3或者7整除,但是不能同時被3或者7整除的條件語句,并且打印對應的結果。b = input('請輸入數字')
i = int(b)
if (i % 3 == 0 or i % 7 == 0) and (not (i % 3 == 0 and i % 7 == 0)):print('yes', end='\n')
else:print('no', end='\n')# 2_2
# 同時被3和7整除,即為21的倍數;除以21不等于0即不能同時被3和7整除
b = input('請輸入數字')
i = int(b)
if i % 3 == 0 or i % 7 == 0:if i % 21 != 0:print('yes', end='\n')else:print('no', end='\n')
else:print('no', end='\n')
9)位運算
1.
使用 “&”、 “~”、 “|” 和 “^” 等操作符進行計算
按位與&:兩個1為1,其他為0
按位或|:有1為1,兩個0為0
按位取反~:1變0,0變1
按位異或^:相同為0,不同為1
2.
按位取反
~n=-(n+1),比如:~3=-4
3.位運算實例
使用&0xFF取得最后n位16進制數
#位運算符
#題目:0xF0384E作為RGB顏色,分別取出R=F0;G=38;B=4E
#計算機中使用的是二進制,所以移位后的數是二進制的要使用hex轉換為16進制
#RGB:R右移4*4=16位,G右移2*4=8
color=0xF0384E
#hex(color>>16)=0xf0
#hex(color>>8)=0xf038 要使用位運算符:&0xFF來取得最后的兩位16進制數
#B=0xF0384E使用&0xFF取得最后兩位16進制數
R=color>>16
G=color>>8
B=color&0xFF
print(hex(R),hex(G&0xFF),hex(B),sep=' ',end='\n')#&0xFF來取得最后的兩位16進制數
#&0xFFFF取得最后四位16進制數
#&0xFFFFFF取得最后六位16進制數
print(hex(color&0xFF),hex(color&0xFFFF),hex(color&0xFFFFFF),sep=' ',end='\n')
注釋
單行注釋#
多行注釋開始和結尾使用三個’‘’或“ ” “
'''
這是多行注釋,用三個單引號
這是多行注釋,用三個單引號
這是多行注釋,用三個單引號
'''"""
這是多行注釋,用三個雙引號
這是多行注釋,用三個雙引號
這是多行注釋,用三個雙引號
"""
round函數
返回浮點數的四舍五入值
round(float浮點數,n要保留的幾位小數)
n=null:整數
n=0或1:一位小數
n為負數:一位小數
-n:在整數部分從右到左,依次變為0
#round() 方法返回浮點數x的四舍五入值
# 當參數n不存在時,round()函數的輸出為整數。
#
# 當參數n存在時,即使為0,round()函數的輸出也會是一個浮點數。
#
# 此外,n的值可以是負數,表示在整數位部分四舍五入,但結果仍是浮點數。
print(round(23.99,1))#24.0
print(round(23.0099,3))#23.01
print(round(23.00000055,7))#23.0000005
print(round(23.00000055))#23--整數
print(round(23.00000055,0))#23.0
print(round(23.00000055,-2))#0.0
print(round(23.00000055,-1))#20.0
題目:
round(0.3,1):保留一位小數,四舍五入:0.3
秒轉換為時分秒形式
常規:
時:d/3600
分:d%3600/60
秒:d%3600%60
因為Python中兩個整數相除為浮點數,所以輸出時使用int()
# 4_1
# 假設今天的上課時間為15678秒,編程計算今天上課時間是多少小時,多少分鐘,多少秒;以XX時XX分XX秒的方式表示出來。d = 15678
# 秒->小時:秒/60/60
h = d / 3600
# 秒->分鐘:秒%3600-->余數為不夠的小時/60-->秒--》分鐘
m = (d % 3600) / 60
# 剩余的秒數:(d%3600)%60余數不夠的秒數
s = (d % 3600) % 60
print(int(h), '時', int(m), '分', int(s), '秒', sep='')# 4_2
# python divmod() 函數把除數和余數運算結果結合起來,返回一個包含商和余數的元組(a // b, a % b)。
d = 15678
# m=d//60 s=d%60
m, s = divmod(d, 60)
# h=m//60 m=m%60
h, m = divmod(m, 60)
print("%02d:%02d:%02d" % (h, m, s))# 4_3
# 使用strftime()與gmtime()函數把秒轉換為時分秒
from time import strftime
from time import gmtime# 輸出 time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=4, tm_min=21, tm_sec=18, tm_wday=3, tm_yday=1, tm_isdst=0)print(gmtime(15678))
# 格式化輸出
print(strftime("%H:%M:%S", gmtime(15678)))