04.從零開始學Python~流程控制與函數
本文是上一篇文章的後續,詳情點擊該鏈接
流程控制
If 語句
案例,判斷成績是否及格
score = int(input("請輸入期末成績"))
if score >= 90:
print("優秀!")
elif score >= 75:
print("良好")
elif score >= 60:
print("及格")
else:
print("不及格")
三元表達式
score = int(input("請輸入期末成績"))
print( "不及格" if int(score)<60 else "及格")
循環
where
案例:使用where計算 1 ~ 100 之間的和
i = 1
num = 0
while i <= 100:
num += i
i += 1
print(num)
for
#遍歷字符串中的所有字符
for i in "alvin":
print(i , end=" ")
print()
#=================#遍歷字典=============================
# 遍歷所有的key
dic = {1:"張三",2:"小明",3:"小海"}
for x in dic:
print(x,end=" ")
print()
#遍歷所有Key的第二種
for x in dic.keys():
print(x,end=" ")
print()
#遍歷所有的value
for x in dic.values():
print(x,end=" ")
print()
#遍歷所有的鍵值對
for x in dic.items():
print(x,end=" ")
range(start, end [step])
包頭不包尾
for i in range(10):
print(i,end=" ")
print()
for i in range (5,13):
print(i,end=" ")
print()
for i in range (1,20,2):
print(i,end=" ")
循環嵌套,案例:九九乘法表
for i in range(1,10):
for j in range(1,i + 1):
print("{0} * {1} = {2}".format(i,j,(i * j)),end=" ")
print()
Zip迭代
names = ("小明","小剛","小海")
ages = (19,18,20)
for name,age in zip(names,ages):
print("{0} {1}".format(name,age))
推導式創建序列
#列表推導式
a = [i for i in range(1,15)]
print(a)
#字典推導式
st = "alvin is great"
dic = {i : "a" for i in st}#字符個數
print(dic)
#集合推導式
ar = {x for x in range(1,100) if x % 5 == 0}
print(ar)
函數
案例:使用遞歸求出1 ~ 100的和
def function(max):
if max <= 100 and max >= 0:
return max +function(int(max) - 1)
else:
return 0
print(function(100))
參數的傳遞
可變對象:
字典、列表、集合、自定義的對象等
不可變對象
數字、字符串、元組、function 等
*param(一個星號),將多個參數收集到一個“元組”對象中。
**param(兩個星號),將多個參數收集到一個“字典”對象中。
def function(*a):
print(a)
function(1,2,3,4,5,6,7)
def functionS(**a):
print(a)
functionS(one = 'alvin',two = 'bob')
lambda表達式和匿名函數
f = lambda a,b,c:a+b+c
print(f(5,3,9))
結果是: 17
eval()函數
功能:將字符串 str當成有效的表達式計算結果。
語法: eval(source[, globals[, locals]]) -> value
參數:
source:一個 Python 表達式或函數 compile()返回的代碼對象
globals:可選。必項是 dictionary
locals:可選。任意映射對象
str = "print('hello world')"
eval(str)
score = "print(10 + 80)"
eval(score)
嵌套函數
def function():
def func():
def local():
print("hello world")
local()
func()
function()
nonlocal關鍵字
nonlocal 用來聲明外層的局部變量。
global 用來聲明全局變量。
def function():
def local():
global a #全局變量
a = 100
local()
function()
print(a)
def function():
a = 20
def local():
nonlocal a #外部函數變量
a = 100
local()
print(a)
function()
LEGB規則
Python在查找“名稱”時,是按照LEGB規則查找的:
Local-->Enclosed-->Global-->Built in
Local 指的就是函數或者類的方法內部
Enclosed 指的是嵌套函數(一個函數包裹另一個函數,閉包)
Global 指的是模塊中的全局變量
Built in 指的是 Python爲自己保留的特殊名稱。