1.識別符號
標示符:就是變數、函式的名字
要求:由 字母、下劃線 和 數字 組成
不能以數字開頭
不能與關鍵字重名
不建議用型別(int、str、float)作為標示符名字
2.格式化輸出
# 定義整數變數 student_no
student_no = 1
# %d占位,輸出整型
# %06d 6位,不夠前面補0
print("我的學號是%06d" % student_no)
price = 9.0
weight = 5.0
total_price = 45.0
# %f, 默認小數點后6位
# %.2f, 小數點后2位
# crtl+d 快速復制1行
print("蘋果單價 %f 元/斤,購買了 %f 斤,需要支付 %f 元"%(price, weight, total_price))
print("蘋果單價 %.2f 元/斤,購買了 %.2f 斤,需要支付 %.2f 元"%(price, weight, total_price))
a = 80
# 占用率位:80%, 兩個%%輸出1個
print("占用率位:%d %%"%a)
3.break和continue的使用
相同點:都是跳出回圈
不同點:break直接跳出回圈,不再運行continue, 跳過本次回圈,下次繼續執行
# break, 跳出回圈,如果有多回圈嵌套,作用于最近的內回圈,就近原則
# break只能用于回圈
# continue, 跳出當前這1次回圈,下一次繼續, 如果有多回圈嵌套,作用于最近的內回圈,就近原則
# 只能用于回圈
4.串列
"""
串列.append(值) 在末尾追加資料
串列.remove(值) 洗掉第一個出現的指定資料
"""
"""
串列[索引] = 值 修改指定索引的資料,資料不存在會報錯
串列[索引] 根據索引取值,索引不存在會報錯
len(串列) 串列長度(元素個數)
if 值 in 串列: 判斷串列中是否包含某個值
"""
# 串列.sort() 升序排序
num_list = [1, 5, 2, 6, 3]
num_list = [1, 5, 2, 6, 3]
# reverse=True, 降序
num_list.sort(reverse=True)
print(num_list)
5.字串
查找
"""
字串.find(目標字串, 開始索引, 結束索引) 在指定范圍內, 查詢目標字串的索引, 不存在回傳-1
"""
str1 = 'hello abc mike'
pos = str1.find('abc')
print(pos)
# 如果沒有找到,回傳-1
pos = str1.find('py')
print(pos)
替換
"""
字串.replace(原內容, 新內容, 替換次數) 回傳一個替換了原內容的新字串,可以指定替換次數
"""
# 源字串里的abc,替換為python,回傳值才是替換后的內容
new_str = str1.replace('abc', 'python')
分隔
# 字串.split(分割符) 以分割符拆分字串, 回傳串列
str1 = 'abc,hello,mike,python'
str_list = str1.split(',')
print(str_list)
拼接
"""
字串 + 字串 拼接兩個字串
字串.join(字串串列) 以字串來連接字串串列中每個元素,合并為一個新的字串, 回傳新的字串
"""
str_list = ['abc', 'hello', 'mike', 'python']
str2 = '++hehe++'
new_str = str2.join(str_list)
6.可變型別與不可變型別
可變型別:串列list, 字典dict, 集合set
不可變型別:int、float、bool、字串str、元組tuple
"""
可變型別: 串列、字典、集合
不可變型別: 數字型別(int, bool, float)、字串
只要重新賦值新的資料,都是改變記憶體地址,都會重新分配記憶體
"""
7.匿名函式
# 格式
# lambda 形參1, 形參2:單行代碼或者函式呼叫
lambda a, b: a+b
# 呼叫方式
# 1. (匿名函式整體)(所需的引數)
# 2. f = 匿名函式整體 # 給匿名函式起名
# f(所需的引數)
8,檔案讀取
1.read讀資料
# 2. 讀取檔案內容
# 格式: 內容變數 = 檔案變數.read(讀取的長度)
# 如果read的長度不指定,默認讀取全部
ret = f.read(5)
print(ret)
# 下次,繼續接著上一次的位置
ret = f.read(4)
print(ret)
2.readlines讀資料
# readlines: 讀取所有的行,按行作為分隔條件
# 格式:內容串列變數 = 檔案變數.readlines()
content_list = f.readlines()
# '\n'換行符,代表換行
print(content_list)
# 通過for取出串列的所有元素
for v in content_list:
print(v)
3.通過readline讀資料
# 2. 讀取檔案內容
# readlines: 讀取所有的行
# readline: 一次讀取一行
# readline格式:內容變數 = 檔案變數.readline()
content = f.readline()
print(content)
content = f.readline()
print(content)
# 打開檔案,指定編碼, encoding=編碼格式
f = open('666.txt', 'w', encoding='utf-8')
# 寫檔案的時候和讀檔案,使用同一個編碼方式即可
9.檔案相關操作
import os
# 檔案重命名: os.rename(舊名字,新名字)
# 洗掉普通檔案:os.remove(待洗掉檔案的名字)
# 創建檔案夾: os.mkdir(檔案夾名字)
# 洗掉空檔案夾:os.rmdir(待洗掉檔案夾名字)
# 獲取當前路徑:路徑變數 = os.getcwd()
# 切換路徑: os.chdir(需要切換的路徑)
# 獲取目錄資訊:目錄串列變數 = os.listdir(指定某個目錄) [重點]
10 eval的使用
# 通過eval()做轉換:看到字串像什么,就轉換為什么
str1 = "['a', 'b', 'c']"
print(str1, type(str1))
temp1 = eval(str1)
print(temp1, type(temp1))
11.面向物件
1.__init__
"""
`__init__`方法:
1. 作用:添加屬性
2. 特點:創建物件的時候,實體化物件,自動呼叫__init__方法
3. 設定引數,呼叫的使用需要和__init__引數匹配
物件名 = 類名(實參1, 實參2) ====》 __init__(self, 形參1, 形參2)
"""
2.__str__
"""
__str__方法:
1. 回傳值必須是字串
2. print(物件變數名) 列印__str__方法回傳值
"""
3.__del__
"""
__del__方法:函式呼叫完畢、程式結束,物件生命周期結束,系統會自動呼叫__del__方法,做清理作業
"""
"""
私有屬性:
1. __(2個下劃線)開頭的屬性,就是私有屬性
2. 只能在類內部操作,在類的外面無法直接操作
"""class Dog(object):
# 添加一個私有屬性
def __init__(self):
self.__baby_count = 0
self.age = 1
"""
私有方法:
1. __(2個下劃線)開頭的普通方法,就是私有方法
2. 只能在類內部操作,在類的外面無法直接操作
3. 在類的內部呼叫普通的實體方法,格式:self.方法名()
"""
# 定義一個私有方法
def __leave(self):
print('休產假了')
5.子類呼叫父類的屬性和方法
def print_type(self):
# 在子類的內部,呼叫父類的方法
# 1. 父類名字.方法名(self)
# Animal.__init__(self)
# 2. super(子類名字, self).方法名()
# super(Dog, self).__init__()
super().__init__() # 等價于 Animal.__init__(self)
super().print_type() # 等價于 Animal.print_type(self)
print('Dog類中的print_type = ', self.type)
6.屬性和方法
"""
實體屬性:放在__init__中添加的屬性,或者,直接在類的外面添加的屬性(物件名.屬性 = 資料)
類屬性:直接在類里面,方法的外面,定義的變數
實體屬性只屬于某個物件,類屬性屬于類的,也是所有物件共有的
"""
# 普通方法:在外部,物件名.方法名()
# 類方法:類名.類方法名(), 主要為了處理類屬性,同樣可以通過物件名操作
"""
類方法格式:在平時寫函式的外面加上@classmethod
默認增加一個引數,代表class的縮寫,代表類名,這個引數只能訪問類屬性
"""
# 靜態方法: 一個和實體屬性、類屬性沒有關系的方法,就是在類中普通的方法
# 呼叫方式:類名.方法名() 或者 物件名.方法名()
class Dog(object):
@staticmethod
def normal_func():
print('一個和實體屬性、類屬性沒有關系的普通方法')
11.例外和模塊
例外:不是語法錯誤,語法錯誤,是程式寫錯了
例外:指程式已經運行了(沒有語法錯誤),突然發生例外,導致程式崩潰
try:
# ret = f.read()
# print(ret)
f.write('hello mike')
print('='*20)
except Exception as e:
print('產出例外:', e)
else:
print('沒有產生例外')
finally:
print('關閉檔案')
f.close()
2.例外的傳遞
由內向外傳遞
# 匯入模塊:本質上就是匯入檔案名
# 模塊:就是一個py檔案,模塊里面有:函式的定義,類的定義,全域變數
# 匯入模塊(匯入這個py檔案)后,可以使用檔案里面的代碼
# 模塊:管理代碼的一個檔案
__name__的作用
作用:為了判斷模塊代碼是否直接運行,或者通過導包間接運行
如果模塊檔案直接運行,__name__內容為__main__如果通過導包間接運行:__name__內容不是__main__
模塊中的__all____all__:只針對from 模塊 import *有效,__all__里面的元素才能被外面使用
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/156316.html
標籤:其他
