1.變量
無(wú)需申明變量類(lèi)型,直接 變量名 = 值
整數(shù) : a = 123
字符串: str = "abc" , 或者str = 'abc'
字符串轉(zhuǎn)義 \n \r , 禁止轉(zhuǎn)義 r'\n\r\abc'
換行 print(
''' line1
line2
line3
....
''' )
2 字符串
ord()
: 獲取字符串的整數(shù)(Unicode碼)表示 ,ord('A') = 65
.encode()
: 獲取字符串編碼結(jié)果,'中文'.encode('utf-8')獲取“中文“的utf-8 編碼結(jié)果
.decode()
: 解碼b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8' , errors='ignore') = "中文" 彰檬, errors='ignore' 忽略錯(cuò)誤
len()
: 計(jì)算字符串長(zhǎng)度 伸刃, len('ABC') = 3
replace()
: 替換 Abc.replace('A' , 'a') = abc;
==
字符串比較直接用 == , <= , >= ...
.format()
: 格式化1 "小明成績(jī){}分,上漲了{(lán)}%".format(90 , 10) ;
% :格式化2 "小明成績(jī)%s分逢倍,上漲了%s %%" %(90 , 10) ; 這里兩個(gè)%%前一個(gè)是轉(zhuǎn)義
3.集合數(shù)據(jù)結(jié)構(gòu)
list
: 列表
names = ['zhangsan' , '李四' 捧颅, ‘傻子’] ;
len(names)
3
names[0]
zhangsan
names[-1] #最后一個(gè)元素
傻子
names[-2] #倒數(shù)第二個(gè)元素
李四
names.append('wangwu') ###添加一個(gè)元素
names
['zhangsan' , '李四' 较雕, ‘傻子’ , 'wangwu']
names.insert(2,'zhao_liu') #添加一個(gè)索引2 的元素zhao_liu
names
['zhangsan' , '李四' 碉哑,'zhao_liu' , ‘傻子’ , 'wangwu']
names.pop() 彈出(刪除)最后一個(gè)元素
name.pop(3) 彈出(刪除)索引為3最后一個(gè)元素
tuple
: 可理解為不可變list
t = (1 ,2)
t
(1,2)
t =(1,) # 定義一個(gè)元素的tuple需要在后面加一個(gè)逗號(hào)
t
(1,)
dict
:字典 亮蒋, 對(duì)應(yīng)其他語(yǔ)言的map
scores = ['zhangsan' : 50 , '李四' :60 扣典,'傻子' :0 ]
scores['zhangsan'] #沒(méi)有找到對(duì)應(yīng)key 報(bào)錯(cuò)
50
scores.get('zhangsan') #沒(méi)有找到對(duì)應(yīng)key 返回None
50
scores.pop('zhangsan') : #刪除zhangsan
'zhangsan' in scores #是否存在KEY
False
scores['張三'] = 100 # 添加key
set
集合
s = set([1, 2, 3])
{1,2,3}
s = set([1, 1, 2, 2, 3, 3])
{1,2,3} #元素不可重復(fù)
s.add(4) #add 添加元素
s.remove(4) #remove 移除元素
s1 & s2 #s1 和s2 的交集
s1 | s2 #s1 和 s2 的并集
4.if條件判斷
if 條件1 :
代碼塊1
elif 條件2
代碼塊2
else:
代碼塊
python 使用的是縮進(jìn)規(guī)則, 不像其他大部分語(yǔ)言用{}花括號(hào)將執(zhí)行的代碼塊包圍 慎玖, 可以認(rèn)為:后面縮進(jìn)的代碼塊就是被{}花括號(hào)包起來(lái)的代碼塊 贮尖。
5.循環(huán)
for..in..循環(huán)
: 類(lèi)似java 的 foreach 循環(huán) , 不過(guò)python 的 in 后面可以是很多類(lèi)型(迭代器)
nams = ['zhangsan' 趁怔, '李四' 湿硝,'wangwu']
for name in names
print(name) ;
for i in range(101)
sum = sum + x ;
print(sum) ;
while循環(huán)
while 條件:
循環(huán)體
break
:跳出循環(huán)
continue
跳過(guò)本次循環(huán)接下來(lái)的邏輯,繼續(xù)下次循環(huán)
6.函數(shù)
help(abs)
: 交互命令下可用help(函數(shù)名)查詢(xún)函數(shù)的幫助信息
常用內(nèi)置函數(shù)
:abs() 求絕對(duì)值 润努,max(1,4,6) 求最大值 关斜,min(2,3,1)求最小值
int("232")強(qiáng)轉(zhuǎn)int , float("12.3")強(qiáng)轉(zhuǎn)浮點(diǎn),str("23")強(qiáng)轉(zhuǎn)字符串,bool(1)強(qiáng)轉(zhuǎn)boolean
定義函數(shù)
:python定義函數(shù)恐怕是最精簡(jiǎn)的的定義方式了铺浇, 無(wú)需定時(shí)返回類(lèi)型痢畜,參數(shù)類(lèi)型
語(yǔ)法
def voidName(x , y):
函數(shù)體
#如果需要在同文件夾下使用其他python文件中的函數(shù)
from 文件名 import 函數(shù)名
python 函數(shù)還有一個(gè)區(qū)別其他語(yǔ)言特殊的功能可以返回多個(gè)值
def manyVal(x, y):
return x+y , x-y ;
add,sub = manyVal(1,2);
print(manyVal(1,2)) ;
#(3,-1) #返回多個(gè)值其實(shí)就是返回一個(gè)tuple數(shù)據(jù)類(lèi)型
函數(shù)參數(shù)
: python 的行參與java 語(yǔ)言也是區(qū)別比較大的
1.可以給參數(shù)設(shè)置默認(rèn)值,這樣當(dāng)擴(kuò)展函數(shù)的參數(shù)可以不修改原來(lái)的調(diào)用鳍侣,java則需要靠重載實(shí)現(xiàn)
def void1(x , y = 2):
print("x=" , x , "y=", y) ;
void1(1) ;
x = 1 , y = 2
2.多個(gè)默認(rèn)值, 指定參數(shù)值 , 如果有多個(gè)默認(rèn)值丁稀, 想跳過(guò)中間某個(gè)值的設(shè)參,需要指定參數(shù)名
def void2(x, y= 2 , z= 7):
print("x=" , x , "y=", y , "z= " , z) ;
void2(1 , z=10);
x=1, y=2,z=10
3.多個(gè)參數(shù) ,可以在參數(shù)前面加一個(gè)* 倚聚,類(lèi)似java 的 參數(shù)后面加...
def void3(*x):
print("x===",x);
# 實(shí)際把參數(shù)封裝成tuple , 類(lèi)似java 將參數(shù)封裝成數(shù)組
void3(1,2,3,5) ;
(1,2,3,5)
x = (1,3,4,5,3)
#如果要將集合類(lèi)型的參數(shù)傳給沒(méi)個(gè)值 二驰,前面也加一個(gè)*
void3(*x);
(1,2,3,5)
4.擴(kuò)展參數(shù),可以傳入函數(shù)體原來(lái)不存在的函數(shù)秉沼,將會(huì)把傳入的值封裝成dist
def void4(x , y , **z):
print("x = " ,x ,"y=",y , "z=",z)
# t 和 o 實(shí)際形參中并不存在 ,z 在這里變成一個(gè)dist(map) ,將t和o 裝到sist 里面
void4(1 ,8 , t = 3 , o= 8) ;