2020-12-30 Python入門(控制語句)
條件表示式
特點
1、在選擇和迴圈結構中,條件表示式情況如下
-
值為false
- false、0、0.0、空值None、空序列物件(空列表、空元組、空集合、空字典、空字串)、空range物件、空迭代物件
-
值為true
- 除以上空系列外的其他情況(合法表示式)均為true,包括函式呼叫的表示式
2、條件表示式中不能有賦值符“=”,出現即報錯
選擇結構
單分支結構
tips:
多條語句縮排必須對齊一致
描述語法格式時,中括號[]通常表示可選非必選
-
單分支
- if 條件表示式: #邏輯、算數、關係等表示式
語句/語句塊 #一或多條
- if 條件表示式: #邏輯、算數、關係等表示式
-
雙分支
- if 條件表示式:
語句1/語句塊2
else:
語句2/語句塊2
- if 條件表示式:
-
三元條件運算子
- 條件為真時的值 if (條件表示式) else 條件為假時的值
多分支結構
tips:
多分支結構,幾個分支之間有邏輯關係,不能隨意顛倒順序
注意控制好不同級別程式碼塊的縮排,縮排量決定程式碼的從屬關係
- 多分支
if 條件表示式 1 :
語句 1/語句塊 1
elif 條件表示式 2:
語句 2/語句塊 2 .
.
.
elif 條件表示式 n :
語句 n/語句塊 n
[else:
語句 n+1/語句塊 n+1
]
- 選擇結構巢狀
if 表示式 1:
語句塊 1
if 表示式 2:
語句塊 2
else:
語句塊 3
else:
if 表示式 4:
語句塊 4
迴圈結構
tips:
1、迴圈結構用來重複執行一條或多條語句
2、判斷條件表示式,true則重複執行迴圈體裡的語句,執行後再次回到此過程
3、迴圈體中應有使迴圈體趨於結束的語句,否則便是死迴圈
while/for迴圈、語句
-
while
- while True:死迴圈
while 條件表示式:
迴圈體語句
-
for
- 通常用於可迭代物件的遍歷
for 變數 in 可迭代物件:
迴圈體語句
-
可迭代物件
-
序列:字串、列表、元組
-
字典
-
迭代器物件
- range:用來產生指定範圍的數字序列,range(start, end [,step]),包頭不包尾
-
檔案物件
-
-
break語句
- 結束while和for迴圈,但當有巢狀迴圈時只能跳出最近一層的迴圈
-
continue語句
- 結束本次迴圈,但當有巢狀迴圈時只能跳出最近一層的迴圈
-
else語句
- while/for迴圈可以附帶1個else語句,它只有沒被break結束時才會執行
while 條件表示式:
迴圈體
else: 語句塊
或者:
for 變數 in 可迭代物件:
迴圈體
else:
語句塊
-
zip()
- 對多個序列進行並行迭代
- 在最短序列用完時就會停止,(1)4,(2)4,(3)3,迭代只會到3
推導式建立序列
-
列表推導式
- [表示式 for item in 可迭代物件 if 條件判斷]
-
字典推導式
- [keys : values for 表示式 in 可迭代物件]
-
集合推導式
- {表示式 for item in 可迭代物件 if 條件判斷}
-
生成器推導式(生成元組)
- (表示式 for item in 可迭代物件 if 條件判斷)
- 實際是一個生成器物件,只能迭代一次,再次會無資料
#列表推導式
print([x for x in range(1,5)])
print([m*2 for m in range(1,20) if m%2==0])
print([a for a in 'abcdefg'])
ab = [(a,b) for a in range(1,5) for b in range(1,5)]#2個迴圈巢狀
for abs in ab:
print(abs,end=',')
print("-----------------------------------------------")
#字典推導式
my_text = 'xiaohu,xiaoshou,xiaoshui'
char_count = {c:my_text.count(c) for c in my_text}
print(char_count)
print("-----------------------------------------------")
#集合推導式
print({x for x in range(1,10) if x%2==0})
print("-----------------------------------------------")
#生成器推導式
d = (x for x in range(1,100) if x%5==0)
print(d) #結果是一個生成器物件,沒有具體數值,只能使用一次
章節作業
score = int(input("請輸入你的分數:"))
grade = '' #建立空字元接收
if score <60:
grade = '不及格'
elif score <80:
grade = '及格'
elif score <90:
grade = '良好'
elif score <=100:
grade = '優秀'
print("分數是{0},等級是{1}".format(score,grade))
x = int(input("請輸入x座標\n"))
y = int(input("請輸入y座標\n"))
if(x==0 and y==0):
print("原點")
elif(x==0):
print("y軸")
elif(y==0):
print("x軸")
elif(x>0 and y >0):print("第一象限")
elif(x<0 and y >0):print("第二象限")
elif(x<0 and y <0):print("第三象限")
else:print("第四象限")
score = int(input("請輸入你的分數:"))
grade = ''
if (score>100 or score <0):
score = int(input("false!請重新輸入數字:"))
else:
if score>=90:
grade = 'A'
elif score >=80:
grade = 'B'
elif score >=70:
grade = 'C'
elif score >=60:
grade = 'D'
else:
grade = 'E'
print("分數是{0},等級是{1}".format(score,grade))
print('------------------------------------------------')
score = int(input("請輸入數字:\n"))
degree = 'ABCDE'
if score>100 or score <0:
score = int(input("輸入錯誤,重新輸入數字:\n"))
else:
num = score//10
if num<6:num = 5
print("你的分數是{0},等級是{1}".format(score,degree[9-num]))
num2 = 0
sum_all = 0
sum_ou = 0
sum_ji = 0
while num2 <= 100:
sum_all += num2
if num2 % 2 == 0:
sum_ou += num2
else:
sum_ji += num2
num2 += 1 # 新增條件使while語句趨向於結束
print("0-100累計和是:", sum_all)
print("0-100奇數和是:", sum_ji)
print("0-100偶數和是:", sum_ou)
sum_all = 0
sum_ou = 0
sum_ji = 0
for i in range(101):
sum_all += i
if i%2==0:
sum_ou+= i
else:
sum_ji+=i
print("0-100的累加和是{0},奇數和是{1},偶數和是{2}".format(sum_all,sum_ji,sum_ou))
for i in range(5):
for i in range(5):
print(i,end='\t')
print()
for m in range(1,10):
for n in range(1,m+1):
print("{0}*{1}={2}".format(m,n,(m*n)),end='\t')
print()
r1 = dict(name='xiaohu',age=20,salary=30000,city='PeiKing')
r2 = dict(name='xiaoshou',age=21,salary=20000,city='Tibet')
r3 = dict(name='xiaoshui',age=22,salary=10000,city='Boston')
tb = [r1,r2,r3]
for i in tb:
if i.get('salary')>15000:
print(i)
empSum = 0
salarySum = 0
salary = []
while True:
s = input("輸入員工工資:\n")
if s.upper()=='Q' or s.upper() =='q':
print("over,out")
break
if float(s) < 0:
continue
empSum +=1
salary.append(float(s))
salarySum += float(s)
print("員工數{0}個".format(empSum))
print("員工薪資",salary)
print("員工平均薪資{0}".format(salarySum/empSum))
salarySum = 0
salary = []
empSum = 0
for i in range(4):
s = input("請輸入薪資:\n")
if s.upper()=='Q' or s.upper()=='q':
print("over,out")
break
if float(s) <0:
continue
empSum += 1
salarySum += float(s)
salary.append(float(s))
else:
print("錄入結束")
print("員工數{0}".format(empSum))
print("員工薪資",salary)
print("員工平均薪資{0}".format(salarySum/empSum))
import turtle
#定義變數接收畫筆資訊
t = turtle.Pen()
#定義形狀顏色速度
t.width(5)
t.speed(0) #0最快,1最慢
colors = ('red','blue','purple','yellow','green','black')
#定義繪製辦法
for i in range(20): #圓圈數量
t.penup() #找到位置
t.goto(0,-i*10) #座標向下,下降比例一致
t.pendown() #開始畫
t.color(colors[i%len(colors)])
t.circle(10+i*10) #圓圈一層比一層大
turtle.done()
import turtle
t = turtle.Pen()
width = 30
num = 18
x1 = [(-250,250),(-250+width*num,250)]
y1 = [(-250,250),(-250,250-width*num)]
t.speed(0)
for i in range(0,19):
t.penup()
t.goto(x1[0][0],x1[0][1]-30*i)
t.pendown()
t.goto(x1[1][0],x1[1][1]-30*i)
for i in range(0,19):
t.penup()
t.goto(y1[0][0]+30*i,y1[0][1])
t.pendown()
t.goto(y1[0][0]+30*i,y1[1][1])
turtle.done()
相關文章
- MySQL入門--事務控制語句MySql
- python 控制語句Python
- Python 入門 :基本條件語句Python
- 【廖雪峰python入門筆記】if語句Python筆記
- Python趣味入門5:迴圈語句whilePythonWhile
- Go快速入門 03 | 控制結構:if、for、switch 邏輯語句Go
- python之流程控制語句Python
- python-條件控制(if語句)Python
- 初學Python(七)——控制語句Python
- 入門MySQL——DML語句篇MySql
- flask之控制語句 if 語句與for語句Flask
- Python基礎入門知識點——if 語句簡介Python
- Python流程控制語句詳解Python
- 入門MySQL——基礎語句篇MySql
- Java 控制語句Java
- 程式控制語句
- python三種流程控制的語句Python
- Python中流程控制語句有哪些?Python
- C++入門教程(9):while 語句C++While
- MySQL入門---(一)SQL的DDL語句MySql
- 《Java從入門到失業》第三章:基礎語法及基本程式結構(3.8):流程控制(迴圈語句、while語句、for語句)JavaWhile
- 『無為則無心』Python基礎 — 13、Python流程控制語句(條件語句)Python
- 『無為則無心』Python基礎 — 15、Python流程控制語句(for迴圈語句)Python
- 複雜控制語句
- 流程控制語句
- 《Java從入門到失業》第三章:基礎語法及基本程式結構(3.8):流程控制(選擇語句、if-else語句、switch語句)Java
- javascript快速入門10--運算子,語句JavaScript
- PLSQL Language Referenc-PL/SQL控制語句-順序控制語句-NULLSQLNull
- Python中匯入模組或包語句Python
- Python入門(六):程式控制結構Python
- C++入門教程(3):語句和縮排C++
- C#快速入門教程(12)—— if語句結構C#
- javascript新手入門之條件語句,迴圈JavaScript
- Java™ 教程(控制流語句)Java
- Go:條件控制語句Go
- PLSQL學習——控制語句SQL
- Java流程控制語句Java
- [Linux]控制語句If caseLinux