Python條件控制和迴圈語句(if while for )

来源:https://www.cnblogs.com/zhangfanshixiaobai/archive/2023/08/29/17665431.html
-Advertisement-
Play Games

# Python條件控制和迴圈語句(if while for ) ## 條件控制 ### 概念:Python 條件語句是通過一條或多條語句的執行結果(True 或者 False)來決定執行的代碼塊 ### ![if1.png](https://img1.imgtp.com/2023/08/29/0U ...


Python條件控制和迴圈語句(if while for )

條件控制

概念:Python 條件語句是通過一條或多條語句的執行結果(True 或者 False)來決定執行的代碼塊

if1.png

if2.png

結構

1. 順序結構

1. 分支結構
2. 迴圈結構

1. 單分支
   if 條件:
   	條件成立之後執行的代碼塊
   	
2. 雙分支
   if 條件:
   	條件成立之後執行的代碼塊
   else:
   	條件不成立之後執行的代碼塊
3. 多分支
   if 條件:
   	條件成立之後執行的代碼塊
   elif 條件1:
   	條件不成立、條件1成立執行的代碼塊
   elif 條件2:
   	條件不成立、條件1成立執行的代碼塊
   elif 條件3:
   	條件不成立、條件1成立執行的代碼塊
   elif 條件4:
   	條件不成立、條件1成立執行的代碼塊
   elif 條件5:
   	條件不成立、條件1成立執行的代碼塊
   else:
   	條件不成立之後執行的代碼塊

- 在嵌套 if 語句中,可以把 if...elif...else 結構放在另外一個 if...elif...else 結構中。
  if 表達式1:
    語句
    if 表達式2:
        語句
    elif 表達式3:
        語句
    else:
        語句
  elif 表達式4:
    語句
  else:
    語句

- 1. 做一個用戶登錄功能,用戶名:kevin,密碼:123
# 要求:用戶名和密碼都輸入正確,列印來賓三位,否則:提示用戶名或者密碼錯誤
# 1. 接收用戶輸入的用戶名
username = input('請輸入你的用戶名:')

# 2. 接收用戶的密碼
password = input('請輸入你的密碼:')  # str

# 3. 比較用戶名和密碼是否正確
if username == 'kevin' and password == '123':
    print('來賓三位')
else:
    print('用戶名或者密碼錯誤')
1. 根據用戶名的不同,列印不同的身份
   kevin(管理員) tony(保全) jerry(財務人員) tank(司機) 列印未知人員
   1. 讓用戶輸入用戶名
    username = input('請輸入你的用戶名:')
   開始比較
    if username == 'kevin':
        print('管理員')
    elif username == 'tony':
        print('保全')
    elif username == 'jerry':
        print('財務人員')
    elif username == 'tank':
        print('司機')
    else:
        print('未知人員')

註意事項:1. 所有的條件最終都會轉化為布爾值進行判斷,條件是否成立
2. Python中,使用縮進來表示代碼的從屬關係
3. 同屬於一個代碼塊的多行子代碼塊縮進量要一致
4. 不是每一個代碼都會有子代碼塊

## 迴圈語句

while while+break while + else while+continue 標誌位

  • whlie1.png

  • 同樣需要註意冒號和縮進。另外,在 Python 中沒有 do..while 迴圈。
    while2.gif

    while 來計算 1 到 100 的總和:
    
    n = 100 
    
    sum = 0
    
    counter = 1
    
    while counter <= n:
    
      sum = sum + counter
    
      counter += 1
    print("1 到 %d 之和為: %d" % (n,sum))
    
    輸入密碼:
    while True:
        username = input('請輸入你的用戶名:')
        password = input('請輸入你的密碼:')
    
        if username == 'kevin' and password == '123':
            print('登錄成功')
        else:
            print('登錄失敗')
    

while+else

count = 0
while count < 5:
    if count == 3:
        break
    print(count)
    count += 1
else:
    print('哈哈哈')
"""else: 當while迴圈中沒有被中斷(break)的時候會走else語句"""

whlie+break

while True:

  username = input('請輸入你的用戶名:')

  password = input('請輸入你的密碼:')

  if username == 'kevin' and password == '123':

      print('登錄成功')

      break # 跳出本層迴圈

  else:
         print('登錄失敗')
  count += 1

break跳出本層迴圈的含義

while True:

username = input('請輸入你的用戶名:')

password = input('請輸入你的密碼:')

if username == 'kevin' and password == '123':

    print('登錄成功')

    ####### 讓用戶繼續輸入它要執行的指令,用戶輸入完指令之後,列印正在執行某個指令

    while True:

        cmd = input('請輸入你要執行的指令:')

        if cmd == 'q':

            # 結束程式

            break

        print('正在執行你的指令:%s' % cmd) # 當用戶輸入q的時候,結束程式

    break

else:

    print('登錄失敗')

標誌位的使用

flag = True
while flag:
    username = input('請輸入你的用戶名:')
    password = input('請輸入你的密碼:')

    if username == 'kevin' and password == '123':
        print('登錄成功')
        ####### 讓用戶繼續輸入它要執行的指令,用戶輸入完指令之後,列印正在執行某個指令
        while flag:
            cmd = input('請輸入你要執行的指令:')
            if cmd == 'q':
                # 結束程式
                flag = False
            print('正在執行你的指令:%s' % cmd) # 當用戶輸入q的時候,結束程式
    else:
        print('登錄失敗')

while+continue

使用while迴圈列印出0-10之間的數字, 但是不列印6
count = 0
while count < 10:
    if count == 6:
        count += 1
        # 不列印
        continue  # 跳出while迴圈的本次迴圈 --------------- 本層
    print(count)
    count += 1

死迴圈:

程式中堅決不能出現死迴圈

count = 0
while True:
    print(count)
    count+=1
    
"""如果一旦出現了死迴圈,CPU的利用率會極速拉滿,導致其他程式也不能用,甚至於關機"""

for

  1. for迴圈不會出現死迴圈,它的迴圈條件不是我們來控制,是人家內部已經控制好了

  2. for迴圈和while迴圈都是用來重覆一個事情的,for迴圈能夠實現的功能,while迴圈都可以實現
    for迴圈的語法結構更加簡潔,它不容易出現死迴圈,所以,推薦以後能夠使用for迴圈的都使用for迴圈

  3. 可迭代對象:字元串、列表、字典、元組等,能夠支持for迴圈的對象都是可迭代對象
    for迴圈的語法格式:
    for 變數名 in 可迭代對象:
    pass

  4. '''字典暴露的是字典的key'''

    d = {'username': 'jerry', 'age': 18}
    for i in d:
        print(i, d[i]) # username age
    

range關鍵字

    1. 方式1
    for i in range(10):  # 生成一個從0開始到9的數字
        print(i)
    for i in [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]:
        print(i)
        
    


  1. 方式2

    for i in range(3, 10): # 生成一個從3開始到9的數字列表
    
     print(i)
    
    
  2. 方式三

    for i in range(0, 250, 25): # 第三個參數代表的是步長
    
     print(i)
    
    
"""練習題:使用for迴圈生成這10頁的地址"""

https://movie.douban.com/top250?start=0&filter=  # 第一頁
https://movie.douban.com/top250?start=25&filter=  # 第二頁
https://movie.douban.com/top250?start=50&filter=  # 第三頁
https://movie.douban.com/top250?start=75&filter=  # 第四頁
https://movie.douban.com/top250?start=100&filter= # 第五頁
https://movie.douban.com/top250?start=225&filter= # 最後一頁

base_url = 'https://movie.douban.com/top250?start=%s&filter='
for i in range(0, 2500, 25):
    # print(base_url % i)
    print('https://movie.douban.com/top250?start=%s&filter=' % i)

for+break

for i in range(10):
    if i == 6:
        break
    print(i)

for+continue

for i in range(10): 
    if i == 6:
        continue
    print(i)

for+else

'''跟while迴圈的用法一樣,中間如果有中斷程式,else就不在走了'''
for i in range(10):
    if i == 6:
        break
    print(i)
else:
    print('hahh ')

for迴圈嵌套

for i in range(3):
    for j in range(5):
        print("*", end='')
    print()  # print()表示換行

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

-Advertisement-
Play Games
更多相關文章
  • 你想成為一名架構師,對嗎?別對我撒謊,我知道你想成為架構師。即使你不想,你還是想成為一名更好的開發者。否則,你就不會花時間閱讀這篇文章。 這種態度值得贊賞。畢竟,我們都希望在自己所從事的領域變得更好,即使不能稱為最好。我在這裡就是為了幫助你實現這一目標。 那麼,你如何成為一名架構師呢?當然是通過學習 ...
  • #### 本文為[李你幹嘛](https://www.cnblogs.com/liniganma)原創,轉載請註明出處:[Pybind11綁定C++抽象類(DLL介面)](https://www.cnblogs.com/liniganma/p/17666063.html) # 摘要 假設我們將DLL ...
  • 數據類型是編程中的重要概念。數據類型指定了變數值的大小和類型。 Go是靜態類型的,這意味著一旦變數類型被定義,它只能存儲該類型的數據。 Go有三種基本數據類型: - bool:表示布爾值,要麼是true,要麼是false。 - 數值型:表示整數類型、浮點數值和複數類型。 - string:表示字元串 ...
  • ### Java 8 的改進 - 速度更快 - 代碼更少(**Lambda表達式**) - 引入強大的**Stream API** - 便於並行 - 最大化減少空指針異常(**Optional**) - **Nashorn**引擎,允許在JVM上運行**js**應用 - **並行流**就是把一個內容 ...
  • 概述 Redis底層有六種數據類型包括:簡單動態字元串、雙向鏈表、壓縮列表、哈希表、跳錶和整數數組。這六種數據結構五大數據類型關係如下: String:簡單動態字元串 List:雙向鏈表、壓縮列表 Hash:壓縮列表、哈希表 Sorted Set:壓縮列表、跳錶 Set:哈希表、整數數組 數據類型和 ...
  • 背景: 根據以下簡單的代碼示例,我們將從源碼的角度分析其中的關鍵載入執行步驟,對pytest整體流程架構有個初步學習。 代碼示例: import pytest def test_add(): assert 1 + 1 == 2 def test_sub(): assert 2 - 1 == 1 通過 ...
  • # SPI是如何規避雙親委派機制的? # 1、何為雙親委派機制? > 雙親委派機制是什麼? 雙親委派機制指的是Java中類載入機制的特性。 > 雙親委派機制是作用於什麼地方? 雙親委派機制主要作用於類載入的時候。 > 類載入器 首先需要清晰的知道,雙親委派機制指的是類載入的特性。在瞭解其特性之前,我 ...
  • # core 工廠模式(Factory Pattern)是一種創建型設計模式,用於創建對象而不暴露對象創建的邏輯。它將對象的實例化過程封裝在一個工廠類中,客戶端通過調用工廠類的方法來創建對象,從而實現瞭解耦和靈活性。 工廠模式的核心思想是將對象的創建與使用分離。客戶端不直接實例化對象,而是通過調用工 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...