1. 程式人生 > >python中的關鍵字---1

python中的關鍵字---1

拼接 格式 比較 als 職業 回車 upper strip nic

變量命名規則:

1.變量由字母數字下劃線組成
2.變量不能以數字開頭
3.禁止使用python中關鍵字
4.禁止使用中文和拼音
5.變量名要區分大小寫
6.變量名要有意義
7.推薦寫法.
駝峰體.
大駝峰.AgeOfOldboy
小駝峰.ageOfOldboy
下劃線.age_of_oldboy

字符串規則:

字符串拼接,
字符串只能和字符串相加
字符串不能減法
字符串只能和數字相乘
字符串不能進行相除

基礎數據類型

int,整形,用於計算和比較
str字符串,字符串只能和字符串相加,字符串只能和數字相乘
bool布爾值,True,False

程序交互(input)
type查看數據類型,
註意:input獲取到的內容都是字符串


int("6")將字符串轉換成數字
str(6)將數字轉換成字符串"6"

密碼加密:
import getpass
user = input("請輸入用戶名:")
pwd = getpass.getpass("請輸入密碼:"
print(user,pwd)

格式化輸出:
name = input("請輸入姓名")
age = input("請輸入年齡")
job = input("請輸入職業")
hobbie = input("請輸入愛好")
print(‘‘‘
name : %s
age : %s
job : %s
‘‘‘%(name,age,job,hobbie)


"""
print(f‘‘‘
name : {name}


age : {age}
job : {job}
hobbie : {hobbie}
"""


運算符

算數運算符

print(a + b)加
print(b - a)減
print(b * a) 乘
print(b / a)除(有小數點)
print(b % a) 取膜
print(b ** a)冪 (幾次方)
print(b // a)整除(沒有小數點)

比較運算符

print(b > a)大於
print(b < a)小於
print(b >= a)大於等於
print(b <= a)小於等於
print(b == a)等於
print(b != a)不等於

賦值運算符

a +=10
a -= 10


a *= 10
a /= 10

() > not > and > or
and兩邊的條件都為真的時候才是真,and前後的數字不為0的時候,取and後邊的數字,否則取0
or兩邊的條件只要有一個為真就是真,or前後的數字不為0的時候取or前面的數字,否則有0的時候取非0
not只要碰到真的就是假的,碰到假的就是真的


字符串詳解:

title每個單詞首字母大寫
capitalize首字大寫
lower全部小寫
upper全部大寫
strip脫,默認脫頭尾的空格
find索引(通過下標查找)不存在返回 -1
index索引(通過下標查找)不存在報錯
切片:[起始位置:終止位置:步長(方向)]
count統計(計數)
center居中
format % f格式化輸出
isalnum判斷是不是數字和字母
isalpha判斷是不是純字母
isdigit判斷是不是純數字
split分割
join插入,拼接
startswith以什麽開始,獲取的結果是布爾值
endswith以什麽結尾,獲取的結果是布爾值


列表


append在後面添加
insert按照下標添加
extend叠代添加


remove移除指定元素
pop彈出(默認刪除組字後一個),通過下標刪除對應元素
clear清空列表
del刪除列表,通過下標刪除對應元素


lst[1]通過下標修改對應元素
lst[0:5]通過下標範圍修改


lst[2]通過下標查找對應元素


字典{‘key‘:1}

不可變:(可哈希): 數字 字符串 元組 布爾值
可變: (不可哈希) 列表 字典

字典裏的鍵必須保證唯一(不能重復)
python36 有順序打印
python35及以下無序打印


dic[‘3‘] = ‘小奶狗的芭比‘,如果這個鍵不在字典中就是添加,存在就是修改
dic.setdefault(‘ 隔壁老王‘,‘男人不在就上‘),存在就不進行添加,不存在就添加
setdefault中第一個參數是鍵,第二參數是值,如果不寫值就默認為None


dic.pop(‘3‘),參數是要刪除的鍵
pop,返回的是被刪除的值
dic.popitem(),隨機刪除,在python36中刪除最後一個,python35及以下隨機刪除
popitem,返回的是被刪除的鍵值對以元組的形式顯示
del dic,刪除整個字典
del dic[‘3‘],通過dic[‘鍵‘]刪除
dic.clear(),清空


dic[1] = 78,如果這個鍵在字典中就是修改,不存在就是添加
dic1.update(dic)


dic.get(4),不存在不報錯,默認返回None,可以自己定義返回值
dic[4]不存在就報錯
print(dic.keys()) ,高仿列表A貨
print(dic.values()),高仿列表A貨
print(dic.items()),以元組形式將鍵值對放在一個高仿列表裏


編碼

ascii  # 不支持中文
unicode 萬國碼 中文4個字節 英文 2個
utf-8 最少使用1個字節 歐洲 2 亞洲 3
gbk 中文 2 英 1
windows 默認編碼GBK

a = ‘你好黑‘
a1 = ‘abc‘

a2 = a.encode(‘utf-8‘) #編碼
print(a)
print(a2)
a3 = a2.decode(‘utf-8‘) #解碼
print(a3)
bytes字節 用於傳輸和存儲

a = ‘你好黑‘
a1 = ‘abc‘
a2 = a.encode(‘gbk‘) #編碼
a3 = a.encode(‘utf-8‘) # 最長用
print(a2)
print(a3)
a4 = a2.decode(‘gbk‘) #解碼
a5 = a3.decode(‘utf-8‘)
print(a4,a5)

set 集合  {}  無序

s = {1,2,3,4,5}

s = {}
print(type(s)) # 空{}就是字典

s = {1,2,3,4,5}
s = {1,2,3,‘22‘,‘ss‘,False,(3,4)}
列表 和 字典 和 集合
print(s)


s.add(8)
print(s)

s.update(‘alex‘) # 叠代添加
print(s)


s = {1,2,3,‘22‘,‘ss‘,(3,4)}

s1 = s.pop() #隨機刪除
print(s) #返回值 返回的被刪除的元素
print(s1)

s.clear()
print(s) #清空 set()

s = {1,2,3,‘22‘,‘ss‘,(3,4)}
del s #刪除整個集合
print(s)

s = {1,2,3,‘22‘,‘ss‘,(3,4)}
s.remove() #通過元素指定刪除
print(s)

改:
s = {1,2,3,‘22‘,‘ss‘,(3,4)}
s.remove(3)
s.add(7)
print(s)

查:

s = {1,2,3,‘22‘,‘ss‘,(3,4)}
for i in s:
print(i)

s = {1,2,3,4,33,21,4,1234,34,1234,5324,1234,12341,23,22,34112,2,21,23,34,123,4}
集合天然去重
print(s)


面試題:
lst = [1,2,3,42,3,45,67,534,2]
print(list(set(lst)))

s = set(lst)
print(list(s))

其他操作:

s = {‘黑哥‘}
s1 = {‘虎哥‘,‘開哥‘,‘王哥‘,‘黑哥‘,‘wu哥‘}

print(s & s1) # 交集 倆個集合都有的才輸出

print(s | s1) # 並集 兩個集合 合並到一起

print(s1 - s) # 差集 前面減後邊的集合前邊集合中有的輸出出來 自己總結

print(s ^ s1) # 反交集 自己總結

print(s < s1) # 子集
print(s1 > s) # 超(父)集


dic = {{1,2,3}:1}
a = frozenset((1,2,3))
dic ={a:1}
print(dic)
print(dic)

深淺拷貝
lst = [1,2,3,[4,5,6],7]
lst1 = lst #賦值
lst2 = lst[:] # 切片
#
lst.append(7)
print(lst)
print(lst2)

import copy

lst4 = copy.deepcopy(lst) # 深拷貝
lst[-2].append(7)
print(lst) #[1, 2, 3, [4, 5, 6,7], 7]
print(lst4) #[1, 2, 3, [4, 5, 6], 7]

淺拷貝:

拷貝的是第一層元素

深拷貝:

拷貝所有元素開辟新的空間存放,完全沒有關系

lst = [1,2,3]
lst1 = [1,2,3]

print(id(lst))
print(id(lst1))

面試題
a = [1, 2]
a[1] = a # [1,[1,2]]
print(a[1])

答案:
[1, [...]]


lst = [1,3,[5,7],9]
lst1 = lst
lst2 = lst[:]
print(id(lst))
print(id(lst1))
print(id(lst2))
lst.append(9)
print(lst)
print(lst1)
print(lst2)

是不是一個東西 長的一不一樣

文件操作
r 讀
w 寫
a 追加寫

f = open(‘s.txt‘,mode=‘r‘,encoding=‘utf-8‘)

ff = f.readline() #讀取時一行一行的時候末尾會跟著\n
print(ff)
ff = f.readline()
print(ff)
ff = f.readline()
print(ff)


ff = f.read(3)
ff1 = f.read()
print(ff)
print(ff1)
f.close()


f = open(‘s.txt‘,mode=‘rb‘) # 使用b的時候不能加編碼集 b是操作字節的
ff = f.read()
print(ff) # \r是回車 \n是換行


f = open(‘s.txt‘,mode=‘r‘,encoding=‘utf-8‘)
ff = f.read()
print(ff)

for i in f:
print(i)

ff = f.read()
print(ff)


f = open(‘s.txt‘,mode=‘rb‘)
ff = f.read(3)
print(ff)



總結:
只讀 r 正常文本
只讀 rb 字節
read() 默認全讀完 可以指定讀幾個
readline 一行一行讀




f = open(‘s.txt‘,mode=‘w‘,encoding=‘utf-8‘)
打開 mode 是對文件操作的模式

w模式會自動創建文件 w會覆蓋 先清空後寫入
f.write(‘黑哥真黑,黑哥都自己黑感冒了‘)
f.close()


f1 = open(‘s.txt‘,mode=‘w‘,encoding=‘utf-8‘)
f1.write(‘藝術哥,愛吃六味地黃丸‘)
f1.close()

總結:
w只能覆蓋的寫
w模式會自動創建文件
w模式下寫的時候首先清空文件的內容,然後在寫


f = open(‘s.txt‘,mode=‘a‘,encoding=‘utf-8‘)
追加寫

f.write(‘趙濕熊‘)
f.write(‘金陽‘)
f.write(‘寶寶‘)


總結:

a 追加 在文件文本末尾添加內容
print(f.read())

f = open(‘文件夾/s.txt‘,mode=‘r+‘,encoding=‘utf-8‘) #r+ 讀寫

ff = f.read()
print(ff)
f.write(‘你好黑‘)

f.write(‘你好黑‘) # r模式 光標在最開頭
ff = f.read()
print(ff)

########坑########## r+ 是咱們最常用的


f = open(‘文件夾/s.txt‘,mode=‘w+‘,encoding=‘utf-8‘) # w+ 寫讀
f.write(‘你好黑‘)
f.flush() # 刷新
f.seek(3) # 調整光標位置到文件最開頭

seek(0) 調整到開頭
seek(3) 單個參數是字節數 0除外 0就是表示調整光標到開頭

seek(0,1) 兩個參數的時候就是表示光標調整到當前位置
seek(0,0) 兩個參數的時候就是表示光標調整到開始位置
seek(0,2) 兩個參數的時候就是表示光標調整到末尾位置

ff = f.read()
print(ff)
f.close() 關閉文件

python中的關鍵字---1