1. 程式人生 > >Python 基礎語法與應用

Python 基礎語法與應用

Python 基礎語法

1.標準化輸入輸出

input()
msg = input()
msg = input("提示資訊")
# input() 的接收結果都是str型別,必要的時候需要做些型別轉換
print("字串" + "拼接")
print("字串", "拼接")
print("字串%s%s" %("拼","接"))
print("字串拼接", end="")
# msg = "123"
# 模擬使用者輸入資訊
# print("請輸入資訊: ")

# 標準化輸入
# 可以有轉義字元
# 錄入的資訊均以字串形式反饋出來
msg = input("請輸入資訊: \n")
print
(type(msg)) # 標準化輸出 # 以字串拼接方式列印 print("使用者輸入的資訊為: " + msg) # 以多個數據方式列印 print("使用者輸入的資訊為:", msg) # 以佔位符方式列印 # %s 可以對所有型別進行佔位 # %d 對int進行佔位 # %f 對float進行佔位 # %x 對16進位制進行佔位 print("使用者%d輸入的資訊為: %s" %(1, msg)) # 多個數據的佔位

執行

請輸入資訊: 
fsdfh
<class 'str'>
使用者輸入的資訊為: fsdfh
使用者輸入的資訊為: fsdfh
使用者1輸入的資訊為:
fsdfh

2.三大結構

共有三種結構: ①分支結構 ②迴圈結構 ③順序結構

  • 順序結構
程式碼執行順序自上而下
  • 分支結構
通過條件判斷選擇不同的分支
if 條件:
	if的邏輯體
elif 條件:
	elif的邏輯體
else:
	else的邏輯體
# else分支可以根據需求省略
# elif分支數取值範圍[0, n]
# if結構可以巢狀
if 下雨:
	if 大雨:
		p(雨衣)
	else:
		p(雨傘)
else:
	p(不帶傘)

if分支

# weather = input("今天天氣怎麼樣: ")

# 如果下雨就帶傘, 否則不用管
# if 條件:
# 邏輯語句(通過縮排決定附屬關係) # if weather == "下雨": # print("帶傘...") # print("上學去...") # 成績60及以上,代表通過,否則不通過 grade = input("考試成績: ") grade = int(grade) # if grade >= 60: # print("通過") # else: # print("不通過") # 90以上優秀 70以上良好 60以上及格 60以下不及格 if grade >= 90: print("優秀") elif 70 <= grade < 90: print("良好") elif grade >= 60: print("及格") else: print("不及格") # 如果不需要考慮所有條件分支的對立面,else分支可以省略

執行

考試成績: 89
良好
  • 迴圈結構
    while __:
    	...
    
    break | continue
    
    while __:
    	...
    else:
    	...
    
    for o in coll
    
當條件滿足,重複執行邏輯程式碼
while 條件:
	迴圈體
else:
	迴圈正常結束邏輯
# 迴圈一般都要設定出口
# else分支可以省略,不省略時,在迴圈正常結束後被執行
# continue關鍵詞可以結束迴圈中的一次迴圈,進入下一次迴圈
# break關鍵詞可以結束所有迴圈(之後所有的迴圈次數不再被執行)
# else分支其實就是在迴圈被break結束才不會被呼叫

while 迴圈

# 列印1-100間所有包含7,可以被7整除的數
# [1, 100]

# while 條件:
#   迴圈體

# 定義迴圈變數
num = 1 # 一次增加1 ,最終增加到100足矣
while num < 100:
    # 個位為7, 十位為7, 7的倍數
    # 邏輯運算子 or
    # num % 10 == 7 or 7 <= num / 10 < 8 or num % 7 == 0
    if num % 10 == 7 or 7 <= num / 10 < 8 or num % 7 == 0:
        print(num, end=" ")  # 以空格分隔輸出
    # 迴圈執行一次,迴圈變數要增加1
    num += 1  # num = num + 1

# 單獨列印一個換行
print()

# break  continue
# Ranga dsb  五遍
count = 0
while count < 5:
    print("Ranga dsb")
    count += 1
else:
    # 迴圈正常結束,就執行else分支
    print("耶!")

count = 0
while count < 5:
    count += 1
    if count == 3:
        # 結束本次迴圈, 進入下一次迴圈
        continue
    print("Ranga dsb")
else:
    print("耶!")

count = 0
while count < 5:
    count += 1
    if count == 3:
        # 結束本層迴圈
        break
    print("Ranga dsb")
else:
    # 迴圈被break終止(非正常退出,沒有迴圈完畢),else分支不會被執行
    print("耶!")

執行結果

7 14 17 21 27 28 35 37 42 47 49 56 57 63 67 70 71 72 73 74 75 76 77 78 79 84 87 91 97 98 
Ranga dsb
Ranga dsb
Ranga dsb
Ranga dsb
Ranga dsb
耶!
Ranga dsb
Ranga dsb
Ranga dsb
Ranga dsb
耶!
Ranga dsb
Ranga dsb

3.函式

  • 語法
def 函式名(引數列表)
	函式體
# 什麼是函式
# 完成一件事,往往需要大量的步驟,將這些步驟彙總形成一個整體,對外提供一個訪問名稱,可以稱之為 完成這件事的工具(方法)
# 而函式的概念就類似於工具(方法)的概念, 函式名就是工具(方法)名
# def 是定義函式的關鍵詞
# 函式通過 函式名(引數列表) 來呼叫函式
# 呼叫一次函式就會把函式體執行一遍(完成了一次功能)
  • 函式的分類
# 無參函式
def fn1():
    功能體
# 有參函式
def fn2(a, b ,c):
    功能體
# 空函式
def fn3():
    pass
  • 引數
# 一個引數
def fn1(a):
	print("一個引數:", a)
# 呼叫傳入: 實參
fn1(8888)
# 形參是實參的值拷貝
# 多個引數時,呼叫的實引數要和形引數相等,且一一對應
def fn2(a, b):
	print("多個引數:", a, b)
 def fn2(10, 20)
# 預設
def fn3(a, b=10):
	print("預設引數:", b)
# 傳入對應的值,預設引數就是傳入的值
fn3(100, 200)
# 沒有預設引數進行傳值,預設引數採用預設值
fn3(100)
  • 返回值
空返回值
一個返回值
多分支返回值
多個返回值
# 所有函式均有返回值
# 用return關鍵詞明確返回值
# 沒有明確返回值的函式的返回值為None
# 返回值可以為一個或多個
# 返回操作可以根據函式內分支結構出現多個返回操作
# 返回操作return就是用來結束函式的,所以出現在返回操作之後的程式碼永遠不會被執行
# 需求: 求兩個數的和
# 1. 得到第一個數
# 2. 得到第二個數
# 3. 求得兩個數的和
# 4. 列印數的和

# 求兩個數之和的功能 => 定義一個數兩個數的工具 => 給工具起個名 => 通過名字,就可以完成一次該功能
n1 = int(input("請輸入第一個數:"))
n2 = int(input("請輸入第二個數:"))
res = n1 + n2
print("%d與%d的和是%d" %(n1, n2, res))

# 再求一次
# 函式的語法定義
# def 函式名(引數列表):
#       函式體
def sum():
    n1 = int(input("請輸入第一個數:"))
    n2 = int(input("請輸入第二個數:"))
    res = n1 + n2
    print("%d與%d的和是%d" %(n1, n2, res))

# 如何使用功能(函式) => 通過函式名(引數列表)
# sum()

# 再來一次
# sum()

# 為什麼使用函式
# 函式可以複用,提高開發效率

# 函式的分類
# 1.無參函式
def fn1():
    print("我是無參函式")
fn1()

# 2.有參函式
def fn2(msg):
    print("我是有參函式,引數是: %s" % msg)
fn2("今天天氣真好")

# 空函式
def fn3(msg):
    pass
fn3("abc")
# 空函式,根據需求定義函式,該有引數還是有引數,只不過該函式功能體還未明確,用pass填充


# 函式的引數

# a 用來接收外界傳入的實際的數,該變數並不實際擁有值
def func(a):
    print(a)

# num 為實際存放值得變數(實際存在的數)
num = 100
func(num)

# 實際擁有值得數: num,稱之為實參
# 接收實際值得數: a, 稱之為形參
# 形參就是對實參的值拷貝

def func1(a, b):
    print(a, b)
func1(10, 20)
# 實參與形參個數需要一致,且一一對應

def func2(a, b=888):
    print(a, b)
func2(1000, 2000)
func2(1000)
# 形參b在規定的時候,賦了初值,稱之為預設(值)形參
# 注: 預設形參要出現在非預設形參之後

# 函式的返回值: 就是功能完成後對外界的反饋
# python中所有函式都有返回值
def f():
    pass
res = f()
print(res)
# 當沒有明確函式返回值,函式返回值為None

# 用return 關鍵詞明確函式返回值
def f1():
    # ...
    return 8888
res = f1()
print(res)

def f1(a):
    if a >=60:
        return "及格"
    return "不及格"
    print("存在return之下的語句永遠不會被執行到")
res = f1(80)
print(res)
# return可以結束函式

def f2():
    return 666, 888
# 多個返回值
# 一次性接收,以元組方式
res = f2()
print(res)
# 逐一接收,採用解壓賦值方式
a, b = f2()
print(a, b)

執行結果

請輸入第一個數:45
請輸入第二個數:88
4588的和是133
我是無參函式
我是有參函式,引數是: 今天天氣真好
100
10 20
1000 2000
1000 888
None
8888
及格
(666, 888)
666 888