Python 基礎語法與應用
阿新 • • 發佈:2018-12-21
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
45與88的和是133
我是無參函式
我是有參函式,引數是: 今天天氣真好
100
10 20
1000 2000
1000 888
None
8888
及格
(666, 888)
666 888