# ### 代碼塊 : 用冒號作為開始,用縮進來劃分相同的作用域
"""作用域: 作用范圍"""
# 基本使用
"""代碼塊是一個整體,在條件滿足時,會一并執行,否則一并不執行"""
if 10 == 10:
print(1)
print(2)
print(3)
# 注意點
"""在使用代碼時,要么全部使用縮進,要么全部使用4個空格,不能混合使用"""
'''
if 10 == 10:
print(5)
print(6)
print(7) # IndentationError
'''
'''
# 擴展: (php js java ...)
if (10 == 10){
print(0)
print(1)
print(2)
}
'''
# ### 流程控制
"""
流程 : 代碼執行的順序
控制 : 對代碼執行順序的把控
三大結構:
(1) 順序結構:
代碼從上到下依次執行
(2) 分支結構:
四大小類
(3) 回圈結構:
1.for回圈
2.while回圈
分支結構:
(1) 單項分支
(2) 雙項分支
(3) 多項分支
(4) 巢狀分支
"""
# 單項分支
"""
if 條件運算式:
code1
code2
當條件運算式成立的時候,執行代碼塊其中的內容,否則不執行
"""
xk = "帥哥"
if xk == "帥哥":
print("哇,好帥呀")
# 雙項分支 (二選一)
"""
if 條件運算式:
code1
code2
else:
code3
code4
當條件運算式成立的時候,執行if這個分支的代碼塊
當條件運算式不成立的時候,執行else這個分支的代碼塊
if分支代碼塊也叫作真區間
else分支代碼塊也叫作假區間
"""
xk = "靚女"
if xk == "靚仔":
print("買包包給他")
else:
print("買西裝給他")
# ### 登錄 賬號/密碼
"""賬戶: admin 密碼:111 => 登錄成功 , 否則提示登錄失敗 """
# input => 獲取用戶的輸入內容,型別是字串
# name = input("請輸入您的姓名:")
# print(name,type(name))
"""
username = input("請輸入您的用戶名")
password = input("請輸入您的密碼")
if username == "admin" and password == "123123":
print("登錄成功")
else:
print("登錄失敗")
"""
# ### 多項分支 (多選一)
"""
語法結構:
if 條件運算式1:
code1
code2
elif 條件運算式2:
code3
code4
elif 條件運算式3:
code5
code6
else:
code ...
如果條件運算式1 成立 , 執行對應代碼塊 , 如果不成立,繼續向下判斷
看一下條件運算式2 是否成立 ,成立的話執行對應代碼塊, 如果不成立,繼續向下判斷
看一下條件運算式3 是否成立 ,成立的話執行對應代碼塊, 如果不成立,繼續向下判斷
當所有的條件都不滿足的時候,直接執行else這個分支
elif 可以出現0次或者多次
else 可以出現0次或者1次
"""
youqian = False
youfang = False
youche = False
yanzhi = True
renpin = False
if youqian == True:
print("選擇嫁給他")
elif youche == True:
print("選擇嫁給他")
elif yanzhi == True:
print("選擇嫁給他")
elif renpin == True:
print("選擇嫁給他")
else:
print("你是個好人")
print("<=====>")
# ### 巢狀分支
"""單項分支,雙項分支,多項分支的互相嵌套的寫法"""
youqian = False
youfang = False
youche = False
yanzhi = False
renpin = False
if youqian == True:
if youfang == True:
if youche == True:
if yanzhi == True:
if renpin == True:
print("嫁給他,接盤俠")
else:
print("你不適合我")
else:
print("去韓國整容再來吧")
else:
print("好好賺錢")
'''
#出題 height
#女生找物件
# 男生在1米~1.5米之間 小強 你在哪里?
# 男生在1.5~1.7米之間 沒有安全感~
# 男生 1.7~ 1.8米之間 帥哥 留個電話
# 男生 1.8~2米之間 帥哥 你建議多一個女朋友嗎
height = float(input("請輸入您的身高:"))
print(height,type(height))
# python特有
"""
if 1 <= height < 1.5:
print("小強 你在哪里")
elif 1.5 <= height < 1.7:
print("沒有安全感")
elif 1.7 <= height < 1.8:
print("帥哥 留個電話")
elif 1.8 <= height < 2:
print("帥哥 你建議多一個女朋友嗎")
else:
print("沒有合適的選項")
"""
#通用寫法
if height >= 1 and height < 1.5:
print("小強 你在哪里")
elif height >= 1.5 and height < 1.7:
print("沒有安全感")
elif height >= 1.7 and height < 1.8:
print("帥哥 留個電話")
elif height >= 1.8 and height < 2:
print("帥哥 你建議多一個女朋友嗎")
else:
print("沒有合適的選項")
'''
print("<=====>")
# ### 回圈結構
"""特點:減少冗余的代碼,提升開發的效率,便于后期的維護"""
"""
(1) 初始化一個值
(2) 寫上回圈條件
(3) 寫上自增自減的值
while 條件運算式:
code
"""
# 列印1 ~ 100的數字
# (1) 初始化一個值
i = 1
# (2) 寫上回圈的條件
while i <= 100:
# (4) 寫上回圈的邏輯
print(i)
# (3) 寫上自增自減的值
i+=1 # i = i+1
"""
# 代碼決議:
# 第一次回圈
i = 1 , i <= 100 =>True,執行回圈 print(i) => 1
i += 1 => 1 + 1 => 2
# 第二次回圈
i = 2 , i <= 100 =>True,執行回圈 print(i) => 2
i += 1 => 2 + 1 => 3
# 第二次回圈
i = 3 , i <= 100 =>True,執行回圈 print(i) => 3
i += 1 => 3 + 1 => 4
依次類推...
當i = 101 時 i <= 100 =>False , 終止回圈 , 程式結束.
"""
# 1 ~ 100 計算累加和
# 方法一
i = 1
total = 0
while i <= 100:
total += i # total = total + i
i+=1
print(total,"方法1") # 5050
"""
第一次回圈
i = 1 i <= 100 成立 , 執行回圈 total += i => total = total + i => 0 + 1
i += 1 => 2
第二次回圈
i = 2 i <= 100 成立 , 執行回圈 total += i => total = total + i => 0 + 1 + 2
i += 1 => 3
第三次回圈
i = 3 i <= 100 成立 , 執行回圈 total += i => total = total + i => 0 + 1 + 2 + 3
i += 1 => 4
什么時候結束?
i = 101 i <= 100 不成立 , 不執行回圈,回圈終止
total => 0 + 1 + 2 + 3 + ... + 100 = 5050
"""
# 死回圈
"""
while True:
print(123)
"""
# 死回圈的寫法完成1~100的累加和
# 方法二
i = 1
total = 0
sign = True
while sign:
total += i # 1 + 2 + ... +100
i+=1
if i == 101:
# 手動設定False ,跳出回圈
sign = False
print(total,"方法2")
print("<=====>")
# ### 單向回圈練習
# (1)列印一行十個小星星
"""
help(print)
print("*",end="")
print("*",end="")
print("*",end="")
print("*",end="")
print("*",end="")
print("*",end="")
print("*",end="")
print("*",end="")
print("*",end="")
print("*",end="")
"""
# print默認是列印一行,結尾加換行,end=''意思是末尾不換行,
i = 1
while i <= 10:
print("*",end="")
i+=1
print()
# (2)用變數拼接字串的形式,列印一行十個小星星
# + 號可以用來拼接字串
'''strvar = "可愛的" + "小寶貝"
strvar = "可愛的"
strvar += "小寶寶" # strvar = strvar + "小寶寶" => 可愛的小寶寶
print(strvar)
'''
i = 0
strvar = ""
while i < 10:
strvar += "*"
i+=1
print(strvar)
"""
代碼決議
strvar = "*"
strvar = "*" + "*" ="**"
strvar = "**" + "*" ="***"
strvar = "***" + "*" ="****"
...
strvar = "*********" + "*" = "**********"
"""
# (3)列印一行十個小星星 奇數個列印★ 偶數個列印☆
# ★☆★☆★☆★☆★☆
i = 0
while i < 10:
if i % 2 == 0:
print("★",end="")
else:
print("☆", end="")
i+=1
"""
### 規律: 任意數和n取余,余數范圍是多少? 0~ (n-1)
0 % 2 = 0
1 % 2 = 1
2 % 2 = 0
3 % 2 = 1
0 % 5 = 0
1 % 5 = 1
2 % 5 = 2
3 % 5 = 3
4 % 5 = 4
5 % 5 = 0
6 % 5 = 1
"""
print()
# (4)用 一個回圈 列印十行十列小星星
i = 0
while i < 100:
# 列印星星
print("★",end="")
# 什么時候換行 9,19,29... 99 是換行點
if i % 10 == 9:
# 添加換行
print()
i+=1
"""
0123456789
**********
10111213141516171819
* * * * * * * * * *
20 ~ 29
* * * * * * * * * *
30 ~ 39
* * * * * * * * * *
...
90 ~ 99
* * * * * * * * * *
9,19,29... 99 是換行點
i % 10 == 9
"""
print()
# (5)一個回圈 列印十行十列隔列變色小星星(一個回圈)
"""
★☆★☆★☆★☆★☆
★☆★☆★☆★☆★☆
★☆★☆★☆★☆★☆
★☆★☆★☆★☆★☆
★☆★☆★☆★☆★☆
★☆★☆★☆★☆★☆
★☆★☆★☆★☆★☆
★☆★☆★☆★☆★☆
★☆★☆★☆★☆★☆
★☆★☆★☆★☆★☆
"""
i = 0
while i < 100:
# 列印黑白相間的小星星
if i % 2 == 0:
print("★",end="")
else:
print("☆", end="")
# 列印換行
if i % 10 == 9:
# 添加換行
print()
i+=1
# (6)一個回圈 列印十行十列隔行變色小星星(一個回圈)
"""
★★★★★★★★★★
☆☆☆☆☆☆☆☆☆☆
★★★★★★★★★★
☆☆☆☆☆☆☆☆☆☆
★★★★★★★★★★
☆☆☆☆☆☆☆☆☆☆
★★★★★★★★★★
☆☆☆☆☆☆☆☆☆☆
★★★★★★★★★★
☆☆☆☆☆☆☆☆☆☆
"""
"""
###規律:任意數和n進行地板除,會出現n個相同的數字!
10個相同的0
0 // 10 => 0
1 // 10 => 0
2 // 10 => 0
3 // 10 => 0
4 // 10 => 0
...
9 // 10 => 0
10個相同的1
10 // 10 => 1
11 // 10 => 1
12 // 10 => 1
...
19 // 10 => 1
0 // 2 => 0
1 // 2 => 0
2 // 2 => 1
3 // 2 => 1
0 ~ 9 // 10 => 10個相同的0
10 ~ 19 // 10 => 10個相同的1
20 ~ 29 // 10 => 10個相同的2
...
90 ~ 99 // 10 => 10個相同的9
相同數字的范圍是0 ~ 9
"""
i = 0
while i < 100:
# 列印黑白相間的小星星
if i // 10 % 2 == 0:
print("★",end="")
else:
print("☆", end="")
# 列印換行
if i % 10 == 9:
# 添加換行
print()
i+=1
# ### 雙向回圈練習
# (1)列印十行十列小星星 (用兩個回圈)
j = 0
while j < 10:
# 列印一行十個星星,控制列
i = 0
while i < 10:
print("*",end="")
i+=1
# 控制換行
print()
j+=1
# (2)列印十行十列隔列換色小星星
j = 0
while j < 10:
i= 0
while i < 10:
if i % 2 == 0:
print("★", end="")
else:
print("☆", end="")
i+=1
print()
j+=1
# (3)列印十行十列隔行換色小星
j = 0
while j < 10:
# 控制列印一行十個黑白相間的星星
i = 0
while i < 10:
if j % 2 == 0:
print("★", end="")
else:
print("☆", end="")
i += 1
# 列印換行
print()
j += 1
print()
# (4)99乘法表
# 方向一
i = 1
while i <= 9:
j = 1
while j <= i:
print("%d*%d=%2d " %(i,j,i*j),end="")
j+=1
print()
i+=1
print()
# 方向二
i = 9
while i >= 1:
# 列印運算式
j = 1
while j <= i:
print("%d*%d=%2d " %(i,j,i*j),end="")
j+=1
# 列印換行
print()
i-=1
# 方向三
i = 1
while i <= 9:
k = 9 - i
while k > 0:
print(" ",end="")
k-=1
j = 1
while j <= i:
print("%d*%d=%2d " %(i,j,i*j),end="" )
j+=1
print()
i+=1
print()
# 方向四
i = 9
while i >= 1:
# 列印空格
k = 9 - i
while k > 0:
print(" ", end="")
k -= 1
# 列印運算式
j = 1
while j <= i:
print("%d*%d=%2d " % (i, j, i * j), end="")
j += 1
# 列印換行
print()
i -= 1
# (5)100 ~ 999 找吉利數字 111 222 123 321 888 ...
"""
678
// 可以取到一個數的高位
% 可以取到一個數的低位
# 個位
678 % 10 => 8
# 十位
678 // 10 % 10 = 7
# 百位
678 // 100 => 6
"""
i = 100
while i <= 999:
# 個位
gewei = i % 10
# 十位
shiwei = i // 10 % 10
# 百位
baiwei = i // 100
# 111 222 333
if shiwei == gewei and shiwei == baiwei:
print(i)
# 123 456
elif shiwei == gewei - 1 and shiwei == baiwei + 1:
print(i)
# 321 654
elif shiwei == gewei + 1 and shiwei == baiwei - 1:
print(i)
i+=1
# 方法二
print("<====>")
i = 100
while i < 1000:
# 先變成字串
strvar = str(i)
# 用字串取下標的形式得到個十百,強轉成整型
gewei = int(strvar[-1])
shiwei = int(strvar[1])
baiwei = int(strvar[0])
# print(baiwei,shiwei,gewei)
# 111 222 333
if shiwei == gewei and shiwei == baiwei:
print(i)
# 123 456
elif shiwei == gewei - 1 and shiwei == baiwei + 1:
print(i)
# 321
elif shiwei == gewei + 1 and shiwei == baiwei - 1:
print(i)
i += 1
出處:https://www.cnblogs.com/liucx/
# ### for回圈
# 遍歷 回圈 迭代 把里面的元素一個一個拿出來
lst = [1,2,3,4]
# lst[0]
# lst[1]
# lst[2]
# lst[3]
i = 0
while i < len(lst):
print(lst[i])
i+=1
# while 回圈在遍歷資料時,有局限性,for回圈應用而生
"""
setvar = {"a","b","c",1,2,3}
while i < len(setvar):
print(setvar[i]) error
i+=1
"""
# for 回圈語法
"""
for 變數 in 可迭代性資料:
code ....
可迭代性物件(資料):
1.容器型別(str,list,tuple,set,dict)
2.range物件
3.迭代器
"""
# 遍歷字串
container = "你的酒窩不醉人,但是我卻神魂顛倒"
for i in container:
print(i)
# 遍歷串列
container = ["小李子","小鄧子","小卓子","小釘子"]
for i in container:
print(i)
# 遍歷元組
container = ("小李子","小鄧子","小卓子","小釘子")
for i in container:
print(i)
# 遍歷集合
container = {"小李子","小鄧子","小卓子","小釘子"}
for i in container:
print(i)
# 遍歷字典 (遍歷字典的時候,默認只遍歷鍵,沒有值)
container = {"lz":"李子","dz":"鄧子","zz":"卓子"}
for i in container:
print(i)
# 可以遍歷不等長的二級容器
container = [("小李子","小鄧子"),{"小卓子"},["小釘子"]]
for i in container:
for j in i:
print(j)
# 變數的解包
a,b = 1,2
a,b = [3,4]
a,b = {7,8}
# 把字典中的鍵依次解包,賦值給對應的變數
a,b,c = {"a":10,"b":11,"c":12}
print(a,b,c)
# 遍歷等長的二級容器
container = [("王思聰","王健林","王美麗"), ("馬云",'馬化騰',"馬麗"),("王寶強","馬蓉","宋小寶")]
for a,b,c in container:
print(a,b,c)
# ### range 用法
"""
# range("開始值","結束值","步長")
結束值最大取不到,取到結束值之前的那個資料
for 一般配合 range使用
"""
# 只有一個值的情況
for i in range(10):
print(i)
# 兩個值的情況
for i in range(1,10):
print(i) # 1 ~ 9
# 三個值的情況
for i in range (1,10,3): #(正序)
print(i) # 1 4 7
print("<====>")
for i in range(10,0,-2):# 倒序
print(i) #10 8 6 4 2
# ### pass break continue
# (1) pass 過
"""
if 10 == 10:
pass
while True:
pass
"""
# break 終止當前回圈(只能用在回圈中)
# 1~10 遇到5 終止
i = 1
while i <= 10:
if i == 5:
break
print(i)
i+=1
for i in range(1,10):
if i == 5:
break
print(i)
i = 1
while i <= 3:
j = 1
while j <=3 :
if j == 2:
break
print(i,j)
j+=1
i+=1
# (3)continue 跳過當前回圈(只能用在回圈當中)
# 1~10 遇到5跳過
# while 回圈
i = 1
while i <= 10:
if i == 5:
# 需要手動加一, 否則死回圈
i += 1
continue
print(i)
i+=1
# for回圈
for i in range(1,11):
if i == 5:
continue
print(i)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/75677.html
標籤:Python
上一篇:Django-Excel匯入匯出
下一篇:Python中的算數運算子
