Python基礎之if判斷,while迴圈,迴圈嵌套

来源:https://www.cnblogs.com/yifchan/archive/2019/04/24/python-1-3.html
-Advertisement-
Play Games

Python基礎之if判斷,while迴圈,迴圈嵌套;if判斷包括 if判斷語法,比較運算符,else語句,邏輯運算符,elif語句,if嵌套;while迴圈包括 while語句語法,賦值運算符,迴圈計算,break和continue;迴圈嵌套包括 print函數的end參數,迴圈嵌套使用,字元串中... ...


if判斷

判斷的定義
如果條件滿足,就做一件事;條件不滿足,就做另一件事;
判斷語句又被稱為分支語句,有判斷,才有分支;

if判斷語句基本語法

if語句格式:

if 判斷的條件:
    條件成立後做的事
    ...
...

代碼縮進為一個tab鍵,或者四個空格,官方建議使用空格;但應註意,在python開發中,tab和空格不能混用!

判斷年齡示例:

# 判斷是否成年,成年則可以進網吧
age = 19
if age>=18:
    print("你滿了18歲,可以進網吧")

if及其縮進代碼可以看成一個完整的代碼塊

比較運算符簡介

運算符 描述
== 比較兩個操作數的值是否相等,相等則返回True,否則返回False
!= 比較兩個操作數的值是否不相等,不相等則返回True
>= 檢查左操作數的值是否大於等於右操作數的值,成立則返回True
<= 檢查右操作數的值是否大於等於左操作數的值,成立則返回True
< 檢查右操作數的值是否大於左操作數的值,成立則返回True
> 檢查左操作數的值是否大於右操作數的值,成立則返回True

註意,在python2.x中,<>和!=作用和效果一樣;但在python3中,已經取消了<>這個比較符號。

else語句

if只能夠用來 當條件滿足時做某事,而else則用來當條件不滿足時做另外的事。

else語法格式:

if 判斷的條件:
    條件成立後應該做的事
else:
    條件不成立時應該做的事

判斷年齡改進版

age = 18
if age>=18:
    print("已成年,可以進網吧")
    print("歡迎來到xxx網吧")
else:
    print("未成年,請以後再來")
print("慢走")  # 無論條件是否滿足,都會執行

控制台輸入年齡示例

age = int(input("請輸入你的年齡:"))
if age>=18:
    print("已成年,可以進網吧")
    print("歡迎來到xxx網吧")
else:
    print("未成年,請以後再來")
print("慢走")

應註意的是,控制台輸入的被python解釋器認為是字元串,字元串不能與數字比較,應該現將從控制台輸入的年齡轉換成數字;

if,else及其各自的縮進代碼可以看成一個完整的代碼塊
雖然他們並不能摺疊成一個代碼塊,但其實就是,之所以各自摺疊的原因是因為它們各自是局部代碼;

邏輯運算符

邏輯運算符簡介
邏輯運算符的使用:當需要同時判斷多個條件是否成立以執行後續的代碼時
與或非,與或是用來連接條件的,非不連接條件,是用來對條件取反的;

and 與

條件1 and 條件2

必須兩個條件同時滿足,才是真,返回True;
只要有一個條件不滿足,就是假,返回False。

or 或

條件1 or 條件2

兩個條件只要有一個滿足,就是真,返回True;
只有兩個條件都不滿足,才是假,返回False。

not 非

not 條件

非不連接條件,用來對條件取反;
not使用場景:當希望 條件不滿足時執行某件事情,可以用not;
另外,如果是拼接複雜的邏輯計算時,也可能用到not。

邏輯運算符使用示例

示例1:

# 邏輯判斷年齡是否正確
age = 40
if age>=0 and age<=120:
    print("年齡正確")
else:
    print("年齡錯誤")

示例2:

# not判斷公司員工
is_employee = False
if not is_employee:
    print("非本公司員工,禁止入內")

elif語句

elif應用場景:希望判斷多個條件,並且多個條件對應不同的處理方式時;
elif中 同時判斷多個條件,所有的條件是平級的。

elif的語法:

if 條件1:
    條件1滿足時,就執行這裡面的代碼
elif 條件2:
    條件2滿足時,就執行這裡面的代碼
elif 條件3:
    條件3滿足時,就執行這裡面的代碼
else:
    如果上述條件都不滿足,就執行這裡的代碼

elif應用示例

# 判斷是否為女友的節日並作出相應動作
day = "birthday"

if day == "birthday":
    print("buy cake")
elif day = "Valentine's Day":
    print("buy rose")
elif day = "Christmas Eve":
    print("eat apple")
else:
    print("Everyday is her holiday!")

if嵌套

if嵌套的應用場景:用來判斷多個有前後依賴的場景,在前一個條件滿足的情況下,再額外增加條件判斷時使用;

if嵌套的語法:

if 條件1:
    if 條件1.1:
        條件1.1滿足時,就執行這裡面的代碼
    elif 條件1.2:
        條件1.2滿足時,就執行這裡面的代碼
    else:
        如果上述條件都不滿足,就執行這裡的代碼
elif 條件2:
    條件2滿足時,就執行這裡面的代碼
elif 條件3:
    條件3滿足時,就執行這裡面的代碼
else:
    如果上述條件都不滿足,就執行這裡的代碼

火車站檢票安檢代碼

# 有火車票後進入安檢環節,沒有票就不允許進,安檢環節如果滿足條件就進入,不滿足就進行提醒
has_ticket = True
knife_length = 30
if has_ticket:
    print("檢票完成,進入安檢環節")
    if knife_length > 20:
        print("你攜帶的道具有 %d釐米,不符合規定,不允許上車!"%knife_length)
    else:
        print("安檢成功,祝你旅途愉快")
else:
    print("沒有票,不允許進入,請先購票")

所學綜合應用

# 開發一個剪刀石頭布的人機對戰游戲
import random

player = int(input("請選擇你的出拳,只需輸入數字:1.石頭 2.剪刀 3.布))
computer = random.randint(1,3)
print("玩家選擇的是%d,電腦選擇的是%d"%(player, computer))
if ((palyer == 1 and computer == 2) 
        or (palyer == 2 and computer == 3) 
        or (palyer == 3 and computer == 1)):
    print("恭喜你,你贏了")
elif player == computer:
    print("平局,這麼巧")
else:
    print("不好意思,你輸了")

一行過長代碼的換行
原來:

if (palyer == 1 and computer == 2) or (palyer == 2 and computer == 3) or (palyer == 3 and computer == 1):
    print("你贏了")

換行:

if ((palyer == 1 and computer == 2) 
        or (palyer == 2 and computer == 3) 
        or (palyer == 3 and computer == 1)):
    print("你贏了")

while迴圈的基本使用

程式的三大流程

程式只有三個流程,順序,分支,迴圈
從上到下,順序;
條件判斷,分支;
特定代碼重覆執行,迴圈;

while語句基本語法

初始條件(例如 i=1)
while 條件:(例如 i<=5)
    滿足條件時做的事(xxx)

    處理條件(例如 i=i+1)
迴圈結束後做的事(xxx)

第一個while迴圈示例

i =1
while i<=5:
    print("hello python")
    i = i+1
print("迴圈結束")

註意,迴圈結束後,之前定義的計數器條件的數值依舊是存在的;

死迴圈:沒有對計數器進行處理,導致程式一直在迴圈部分執行,無法跳出;

python中的賦值運算符

i += 1 ---> i = i+1
-=
i /= 2 ---> i = i/2
*=
//=
%=
**=

註意,賦值運算符之間不能有空格;

程式計數從0開始

自然計數法,從1開始,符合人的習慣
程式計數法,從0開始,幾乎所有的語言都是如此

迴圈計算示例

迴圈計算思路分析
先在外面定義一個變數用來保存計算結果;
每迴圈一次就更新一下變數的計算結果。

示例1:

# 0到100數字累加
i = 0
sun = 0
while i <= 100:
    sum += i
    i += 1
print("迴圈結束,0到100的求和結果是%d" % sum)

示例2:

# 偶數求和之計算結果
i = 0
sum = 0
while i <= 100:
    if i%2 == 0:
        sum += i
    i += 1
print("迴圈結束,0到100的求和結果是%d" % sum)

break和continue

break和continue的使用場景

break和continue是專門在迴圈中使用的關鍵字
break 某一條件滿足時,退出迴圈,不再執行後續重覆的代碼
continue 某一條件滿足時,不執行後續的重覆代碼
break和continue只對當前所在迴圈有效
break打斷整個迴圈
continue打斷一次小迴圈

break代碼演練

i = 0
while i<10:
    if i == 3:
        break
    print(i)
    i+=1

continue代碼演示

i = 0
while i<10:
    if i == 3:
        # 在迴圈中,使用continue之前,需確認迴圈的計數是否需要修改,否則很容易造成死迴圈。
        i += 1
        continue
    print(i)
    i+=1

迴圈嵌套

迴圈嵌套語法

while 條件1:
    條件滿足時,做的事...

    while 條件2:
        條件滿足時,做的事...

        處理條件2
    處理條件1

print函數end參數的作用

預設情況下,print函數會在結尾自動增加換行;而用end參數的話,可以用end指定的內容替換換行,比如空格,就是調整print函數不換行;再比如end="---",就是在添加end的print輸出語句和下一個輸出語句之間不換行且添加---

print("1")
print("2")

print("1", end="")
print("2")

print("1", end="---")
print("2")

迴圈嵌套使用案例

案例1.列印五行小星星

row = 1
while row <= 5:
    # 每一行要列印的小星星數量和當前行數是一樣的
    # 增加一個小迴圈,專門負責當前行中,每一列的小星星輸出
    col = 1
    while col <= row:
        print("*", end="")
        col += 1
    print("")
    row += 1

重點看其中的思路!

案例2.九九乘法表案例

row = 1
while row <= 9:
    col = 1
    while col <= row:
        # print("*", end="")
        # print("9 * 9 = 81", end="  ")
        # print("9 * %d = 81" % row, end="  ")
        # print("%d * %d = %d" % (col, row, col*row), end="  ")
        print("%d * %d = %d" % (col, row, col*row), end="\t")  # 加\t的原因是,為了對齊美觀
        col += 1
    print("")
    row += 1

字元串中的轉義字元

轉義字元 描述
\ 反斜杠符號
' 單引號
" 雙引號
\n 換行
\t 橫向製表符
\r 回車

t在控制台輸出一個製表符,協助在輸出文本時垂直方向保持對齊;
製表符的作用是在不適用表格的情況下在垂直方向按列對齊文本;
\n在控制台輸出一個換行符。

print("1 2 3")
print("10 20 30")
# \t在控制台輸出一個製表符,協助在輸出文本時垂直方向保持對齊,製表符的作用是在不適用表格的情況下在垂直方向按列對齊文本
print("1\t2 \t3")
print("10\t20\t30")
# \n在控制台輸出一個換行符
print("hello\nworld")
print("hello\"world")

# 輸出
1 2 3
10 20 30
1   2   3
10  20  30
hello
world
hello"world

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 5.1 為什麼需要迴圈控制 前面介紹了程式中常用到的順序結構和選擇結構,但是只有這兩種結構是不夠的,還需要用到迴圈結構(或稱重覆結構)。因為在程式所處理的問題中常常遇到需要重覆處理的問題。 迴圈結構和順序結構、選擇結構是結構化程式設計的3中基本結構。 5.2 用while語句實現迴圈 while語句 ...
  • 基本涉及到了 interface 的方方面面,有例子、有源碼分析、有彙編分析。直接從 10 個問題出發,深度解答。 ...
  • 字元串 name = 'Jim' # name = str('jim') str1 = str(1.1) str2 = str([1, 2,3]) print(f'str1:{str1} ,str1_type:{type(str1)}') print(f'str2:{str2},str2_type: ...
  • import requests from lxml import etree from urllib import parse import os, time def get_page_html(url): '''向url發送請求''' resoponse = session.get(url, he... ...
  • 本博文分析了強調高質量代碼的原因、判別標準;然後從代碼實踐中總結出怎樣寫出高質量的代碼:​:​從基礎的命名到函數、類以及設計模式、面向對象設計的開發原則、一直到最頂層的模式與架構;給閱讀到該博文的開發人員有正確的指引作用,產生共鳴; ...
  • from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys from selenium.webdriver.sup... ...
  • requests模塊 一、發送請求 向某個 發送get請求 發送一個post請求 發送其他類型的請求也都可以 二、傳遞url參數 get請求傳遞參數 post請求傳遞參數 三、響應內容 獲取響應的內容 二進位響應內容 json響應內容 四、指定請求頭 五、複雜的post請求 傳遞類似html表單的數 ...
  • 作業完成人: 學號:20181004011,劉飛宇 學號:20181004023,趙盛陽 1:換選擇幾率高 2:①不換選擇幾率為1/3 ②換選擇:若選中汽車,則換選擇後肯定錯誤;若選中羊,則換選擇後必定正確,因為有兩隻羊,所以正確率為2/3; 3: ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...