04.從零開始學Python~流程控制與函數

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爲自己保留的特殊名稱。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章