1. 程式人生 > 其它 >python基礎知識之控制結構及推導式用法

python基礎知識之控制結構及推導式用法

1、開發程式時,不能用保留關鍵字作為識別符號給變數、函式、類、模組以及其他物件命名
import keyword
keyword.kwlist
保留字:and,elif,import,raise,global,as,else,in,return,nonlocal,assert,expect,is,try,true,break,finally,lambda,while,false,class,for,not,with,None,contain,from,or,yield,def,if,pass,del

2、print()函式的詳細語法格式如下
print(value,...,sep='',end='\n',file=sys.stdout,flush=False)
1)基礎用法_列印字串
print("hello word")
2)換行符_預設換行,如果不想進行換行,將end寫出
print(60, end="\n")
3)存在檔案中_建立檔案,類似於import loging模組
file_1 = open("demo.txt", "w")
print("hello word", file=file_1)
file_1.close()
4)輸出多個變數_通過賦值變數
name = "zhangsan"
age = 18
print(name,age)
5)自定義分隔符,用sep=
name = "zhangsan"
age = 18


print(name,age,sep="*")

3、input函式_python中要轉換成整型,使用int(),字串使用str()
注意:
int()+int()=int()
int()+float()=float()
基礎語法:str=input(tipmsg)

a = input("enter a number:")
b = input("enter another number:")
print("aType:", type(a))
print("bType:", type(b))
result = a + b
print("resultvalue:", result)
print("resultype:", type(result))

4、python比較運算子_比較運算子只比較大小,不比較型別
print("100是否大於100", 100> 100)
print("200是否大於等於100", 200 >= 100)
print("100是否等於101", 100 == 101)
# 比較運算子只比較大小,不比較型別
print("34是否等於34.0", 34 == 34.0)
# bool型別比較時,會先轉變為1,再進行比較,布林值、整數、浮點數可以進行比較
運算子只能比較同類型大小,不能比較非同型別如str(100)>int(100)

print("False 是否小於 True: ", False < True)


print("True 是否小於True:", True < True)
print("True是否大於等於1:", True >= 2)

5、邏輯運算子_優先順序預設是從左往右同級比較,改變優先順序或者改變整體關係,可以使用小括號修改
age = int(input("請輸入年齡:"))
height = int(input("請輸入身高:"))
# 邏輯運算子前面的已經能判斷真假時,不會執行後續的程式碼
if age >= 18 and age <= 30 and height >=170:
print("恭喜,你符合報考飛行員的條件")
else:
print("抱歉,你不符合報考飛行員的條件")

6、==和is的區別
# ==是python標準操作運算子中的比較操作符,用來比較判斷兩個物件的value是否相等
# is 也被叫做同一性運算子,這個運算子比較判斷的是物件間的唯一身份標識,也就是id
# 變數型別為不可變型別時,變數的地址和變數值是一致的;變數型別為可變型別時,傳的是引用地址,所以變數的id值是不一樣的
# ==用來比較兩個變數的值是否相等,而is則用來對比兩個變數引用的是否是同一個物件
可變型別:當你第一次賦值聲明瞭一個可變資料型別的時候, 同樣會在記憶體中開闢一個空間, 並且將你所賦的資料值放在這塊記憶體中, 然後將這個變數指向資料所在的記憶體地址, 不同的是, 可變資料型別可以對記憶體中的資料直接進行修改, 並且不會導致變數引用地址的變化, 但是這種修改僅限於Python中的內建方法, 比如list.append(), list.remove(), dict.pop(), dict.clear()等, 如果要是進行重新賦值的操作的話, 一樣會改變變數的地址指向。而且當變數重新指向了新的記憶體之後,之前的記憶體也就被自動回收了。
list,dict,set
不可變型別:不可變型別的變數在第一次賦值宣告的時候,會在記憶體中開闢一塊空間,用來儲存這個變數被賦予的值,存放這個值的記憶體空間就是記憶體中的一個地址,而這個變數儲存的並不是被賦予的值而是存放這個值的記憶體地址,通過這個地址,變數就可以在記憶體中取出資料了,所謂不可變就是說,我們不能改變這個資料在記憶體中的值,所以當我們改變這個變數的賦值時,只是在記憶體中重新開闢了一塊空間,將新的資料存放到新的記憶體地址裡,而原來那個變數就不再引原資料的的記憶體地址,而是轉換為引用新資料的記憶體地址了
number,string,turple

7、列表詳解(類似於其他語言中的陣列):列表中可以存放各種型別資料
注意:一個list中儘量放同一個型別的資料list=[]
1)建立list
使用[ ]直接建立列表
list1=[1,2,3]
list2=['123','abc']
建立空列表
list=
通過list()函式轉換

list_1 = list("hello")
print(list_1)
# 將元祖轉換成列表
tuple1 = ("python", "java")
list_2 = list(tuple1)
print(list_2)

2)訪問列表元素:對應範圍為index[start,end-1]
通過索引號訪問列表元素:listname[索引號]

url = list("0123456789")
print(url)
print(url[0])  # 使用正數索引
print(url[-1])  # 使用負數索引

使用切片訪問列表元素的格式:listname[開始索引,結束索引,步長],冒號前後如果沒有數字,代表從索引號開始顯示所有的元素或者閒死到索引號之前的所有元素

url = list("0123456789")
print(url[0:5])   # 使用正數切片
print((url[0:10:3]))  # 指定步長
print(url[-3:-1])  # 使用負數切片
print(url[-3:]) 顯示-3到0的所有元素既最後4個元素
print(url[:])  #複製所有元素

3)新增元素:
listname.append():用於在列表的末尾新增元素

# append()方法新增元素,在列表的尾部新增元素
list_1 =["python", "c++", "java"]
list_2 = (1, 2, 3)
# 追加元素,新增的元素不管是一個還是多個,都以整體新增到列表尾部中
list_1.append("PHP")
print(list_1)
list_1.append(list_2)
print(list_1)

listname.extend():將新增的物件依次新增到被新增列表中,新增至列表尾部

listname.insert(index,內容):新增至指定位置,指定索引號為多少,插入位置索引為多少,以整體進行插入

list_1.insert(1, "c#")
print(list_1)

4)刪除元素
根據目標元素所在位置的索引進行刪除,可以使用del關鍵字或者pop()方法
根據元素本身的值進行刪除,可以使用remove()方法
將列表中所有元素全部刪除,可以使用clear()方法

# del刪除列表中的單個元素,格式為 del
# list_1 =["python", "c++", "java", "PHP", "Ruby", "C"]
# del list_1[2]
# print(list_1)
# 使用del 刪除一段連續的元素
list_1 =["python", "c++", "java", "PHP", "Ruby", "C"]
# del list_1[1:3]
# print(list_1)
# 使用pop()方法刪除,可以從最後一個元素開始刪除,也可以刪除指定元素
# 刪除最後一個元素
list_1 =["python", "c++", "java", "PHP", "Ruby", "C"]
list_1.pop()
print(list_1)
# 刪除指定元素
list_1.pop(2)
print(list_1)

# 使用remove()方法刪除指定元素,remove()方法只能刪除當前真實存在列表中的元素
list_1 =["python", "c++", "java", "PHP", "Ruby", "C"]
list_1.remove("PHP")
print(list_1)
# 使用clear刪除列表
list_1 =["python", "c++", "java", "PHP", "Ruby", "C"]
list_1.clear()
print(list_1)

5)查詢元素:可以通過index()和count()方法查詢元素
index()方法通過值查詢索引號只能查詢第一次出現的位置
查詢的元素不在區間範圍之內時,會報錯
count()方法可以檢查元素是否在區間內

# python列表提供了index()和count()方法,可以用來查詢元素
# index
nums = [1, 2, 3, 4, 5, 2, 7, 8, 9, 0]
# 檢索列表中所有的元素
print(nums.index(2))
# 檢索3~7之間的元素
print(nums.index(5, 0, 7))

# count查詢元素出現了多少次
print(nums.count(4))