Day02 一,while while也稱為無限迴圈、死迴圈 while 條件: 縮進 迴圈體 break -- 必須在while迴圈使用 braek -- 終止當前迴圈,且其下方的代碼不會執行。 while True: print(' ') print('西北玄天一片雲,') print('烏鴉落 ...
一,while
while也稱為無限迴圈、死迴圈
-
while 條件:
縮進 迴圈體
-
應用領域:音樂播放:單曲迴圈,列表迴圈,隨機播放(也是有規律的)
登陸界面:……
數學計算:1~100的和,1~100奇數的和/偶數的和……
while True:
print('-------------')
print('西北玄天一片雲,')
print('烏鴉落入鳳凰群,')
print('滿桌都是英雄漢,')
print('誰是君來誰是臣。')-
break -- 必須在while迴圈使用
braek -- 終止當前迴圈,且其下方的代碼不會執行。
while True:
print('-------------')
print('西北玄天一片雲,')
print('烏鴉落入鳳凰群,')
print('滿桌都是英雄漢,')
print('誰是君來誰是臣。')
break # 可放在迴圈體下麵的任何條件後 -
改變迴圈體的條件--也可以終止迴圈
f = True
while f:
print('-------------')
print('西北玄天一片雲,')
print('烏鴉落入鳳凰群,')
print('滿桌都是英雄漢,')
print('誰是君來誰是臣。')
f = False # 可放在迴圈體下麵的任何條件後 -
continue -- 跳出本次迴圈,繼續下一次迴圈,其下方的代碼不會執行。
(偽裝成迴圈體的最後一行代碼)
while True:
print('-------------')
print('西北玄天一片雲,')
print('烏鴉落入鳳凰群,')
print('滿桌都是英雄漢,')
continue # 偽裝成最後一行代碼,不執行其下麵的代碼,繼續無線迴圈
print('誰是君來誰是臣。')
-
-
練習題
-
# 利用while語句寫出猜大小的游戲: 設定一個理想數字比如:66,讓用戶輸入數字,如果比66大,則顯示猜測的結果大了;如果比66小,則顯示猜測的結果小了;只有等於66,顯示猜測結果正確,然後退出迴圈。
num = 66 # 設置變數,便於後期維護
while True: # 設定無限迴圈
s = int(input("你猜猜皇上想到的是哪個整數:")) # 用戶交互
if s > num:
print("結果大了")
elif s < num:
print("結果小了")# 輸入的數字不滿足條件,就無限迴圈
else: # 滿足s = 66 的情況下
print("結果正確")
break # 終止
-
# 在1題的基礎上進行升級:給用戶三次猜測機會,如果三次之內猜測對了,則顯示猜測正確,退出迴圈,如果三次之內沒有猜測正確,則自動退出迴圈,並顯示‘太笨了你....’。
count = 0
num = 66
while count < 3: # 給變數設置限制
s = int(input("你猜猜皇上想到的是哪個數字:"))
if s > num:
print("結果大了")
elif s < num:
print("結果小了")
else:
print("結果正確")
break
count = count + 1 # 改變變數,使條件變為False,終止迴圈
else:
print("太笨了你啊")
-
# 使用while迴圈輸出 1 2 3 4 5 6 8 9 10
# 註意讀題,沒有7
# 方法一
num = 0
while num < 10:
num += 1
if num == 7:
continue # num為7的時候,結束本次迴圈,繼續下次
print(num)
# 方法二
num = 0
while num < 10:
num += 1
if num == 7:
num += 1 # num為7的時候,7+1
print(num)
-
# 輸出 1-100 內的所有奇數
# 方法一
num = 1
while num < 100:
print(num)
num += 2 # 變數為1,每次都加二,輸出的都是奇數
# 方法二
num0 = 1
while num0 < 101:
if num0 % 2 == 1: # 變數除2餘1,然後輸出
print(num0)
num0 += 1
-
# 輸出 1-100 內的所有偶數
# 方法一
num1 = 0
while num1 < 100:
num1 += 2 # 每次都加二,變數為0,輸出的都是偶數
print(num1)
# 方法二
num2 = 1
while num2 < 101:
if num2 % 2 == 0: # 變數2餘0,是偶數
print(num2)
num2 += 1
-
# 求1-2+3-4+5 ... 99的所有數的和
num4 = 0
ss = 0
while num4 < 99:
num4 += 1
if num4 % 2: # 求出奇數,然後相加
ss += num4
else: # 求出偶數,然後奇數減偶數
ss -= num4
print(ss)
-
二、格式化
占的位置填充時必須一一對應,填充的時候按照順序填充,由左至右
應用:例如做個名片,註冊賬號……
-
%s —— 字元串類型
-
%d%i —— 數字類型
name = input("name:")
age = input("age:")
addr = input("addr:")
phone = input("phone:")
info = """
-----------info----------
姓名:%s
年齡:%s
公司:%s
電話:%s
------------end-----------
"""%(name,age,addr,phone)
print(info) -
%% —— 轉義
msg = "%s的學習進度是2%%"%(python)
print(msg)# %%轉義是百分之二 -
f"{格式}" —— 最好用的一種填充
# f"{}"的一種應用
msg = f"""-----------info----------
姓名:{input('name:')}
年齡:{input('age:')}
公司:{input('addr:')}
電話:{input('phone:')}
------------end-----------"""
print(msg)
-
練習題
# 用戶登陸(三次輸錯機會)提示輸入錯誤次數、剩餘輸入次數(while和格式化輸出的組合)
count = 4
s1 = 0
while count > 1:
count -= 1
id = input("請輸入賬號:")
psd = input("請輸入密碼:")
if id == "username" and psd == "password":
print("登陸成功")
break
else:
s1 += 1
print(f"輸入錯誤{s1}次,還可重新輸入{count - 1}次")
三、運算符
-
算數運算符
運算符 描述 實例 + 加,兩個對象相加 a+b=30 - 減,兩個對象相減,可能會得到負數 a-b=-10 * 乘,兩數相稱或是返回一個被重覆若幹次的字元串 a*b=200 / 除,兩個對象相除 b/a=2 % 取膜,返回除法的餘數 b%a=0 ** 冪,返回x的y次冪 a**b=100000000000000000000L // 整除餘,返回商的整數部分 a//b=0 -
比較運算符
運算符 描述 實例 == 等於,比較兩個對象是否相等 a==b返回False != 不等於,比較兩個對象是否不相等 a!=b返回True <> 不等於,比較兩個對象是否不相等 a<>b返回True > 大於,比較x是否大於y, a>b返回False < 小於,比較x是否小於y a<b返回True >= 大於等於,比較x是否大於等於y a>=b返回False <= 小於等於,比較x是否小於等於y a<=b返回True -
賦值運算符
運算符 描述 實例 = 賦值運算符 c=a+b,將a+b的運算結果賦值給c += 加法賦值運算符 c += a等效於c = c + a -= 減法賦值運算符 c -= a等效於c = c - a *= 乘法賦值運算符 c *= a等效於c = c * a /= 除法賦值運算符 c /= a等效於c = c / a %= 取模賦值運算符 c %= a等效於c = c % a **= 冪賦值運算符 c = a等效於c = c a //= 取整除賦值運算符 c //= a等效於c = c // a -
邏輯運算符
運算符 描述 實例 and “與” a and b返回true or “或” a or b返回true not “非” no(a and b)返回false and: 都為真,就是真:選擇and後面的內容
有一個是假就是假:都為假的時候選擇and前面的內容
or:
兩個都是真,選or前面的
兩個都為假:選or後面的
not: 不是,非
-
優先順序別:( ) > not > and > or
9 or 8 and 4 and not 4 < 5 or 8
9 or 8 and 4 and False or 8
9 or 4 and False or 8
9 or False or 8
9 or 8
9
not 3<5 and 6>3 or 6 and not True or False and 8 or 90
False and 6>3 or 6 and not True or False and 8 or 90
False and 6>3 or 6 and False or False and 8 or 90
False or 6 and False or False and 8 or 90
False or False or False and 8 or 90
False or False or False or 90
90 -
-
成員運算符
運算符 描述 in 如果在指定的序列中找到值返回True,否則返回False not in 如果在指定的序列中沒有找到值返回True,否則返回false a = "alex"
if "b" not in a:
print("不在")
else:
print("在")
a = "alex"
if "b" in a:
print("在")
else:
print("不在")
-
運算符練習題
# 自己先進行推導,之後print(求值)
判斷下列邏輯語句的True,False.
1 > 1 or 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6
# True
not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6
# False
求出下列邏輯語句的值。
8 or 3 and 4 or 2 and 0 or 9 and 7
# 8
0 or 2 and 3 and 4 or 6 and 0 or 3
# 4
四、編碼初識
-
ascii碼 —— 美國自造,最早256位
英文1個位元組
不支持中文
-
Gbk —— 中國製造包含了ascii
中國標準語言——國標
英文8位1個位元組,中文16位2個位元組
-
unicode —— 萬國碼
中文32位4個位元組
-
utf-8 —— 萬國碼的升級版本 最流行的密碼本
英文1個位元組8位
歐洲2個位元組16位
亞洲3個位元組24位
五、單位轉換
-
1Bytes = 8bit 1個位元組 == 8位
-
1KB = 1024B
-
1MB = 1024KB
-
1GB = 1024MB
-
1TB = 1024GB
-
1PB = 1024TB
-