6個月Python學習計劃 Day 7 - 復盤 + 測試日

第一周

Day 1 - Python 基礎入門 & 開發環境搭建
Day 2 - 條件判斷、用戶輸入、格式化輸出
Day 3 - 循環語句 + range 函數
Day 4 - 列表 & 元組基礎
Day 5 - 字典(dict)與集合(set)
Day 6 - 綜合實戰:學生信息管理系統

🧾 一周知識回顧(Week 1)

模塊內容關鍵詞
Python 入門變量、數據類型、輸入輸出str, int, float, bool, input(), print()
控制結構分支語句 if-elif-else,比較運算符==, !=, <, >, and, or, not
循環結構for,while,range(),嵌套循環循環變量、break、continue
列表增刪查改、遍歷、內置函數append(), remove(), sort(), in
綜合項目學生信息管理系統字典列表、函數封裝、菜單邏輯、保存數據

🧠 自我測試題

? 基礎題

  1. 寫出下面代碼的輸出結果:

    name = "Alice"
    age = 25
    print(f"{name} 明年 {age + 1} 歲")
    

    輸出結果為:

    Alice 明年 26
  2. 判斷下面語句是否成立,并說明原因:

    a = 10
    b = 20
    if a > 5 and b < 15:print("True")
    else:print("False")
    

    🔍 條件分析:

    • a > 5
      • a = 10
      • 判斷:10 > 5 → ? True
    • b < 15
      • b = 20
      • 判斷:20 < 15 → ? False

    🧠 and 運算符規則:

     - and 要求 兩個條件都為 True,整個判斷才是 True。- 只要其中一個為 False,結果就是 False。
    

    ? 結論:

     - a > 5 and b < 15 的結果是 True and False → False- 所以執行的是 else 分支:
    

    輸出結果:

    	False
    

    💬 答案總結:

    該語句不成立,因為 b < 15 是 False。and 運算符要求兩個條件都為 True 才整體為 True,因此 else 分支被執行,打印輸出 False。

  3. 編寫一個程序,輸入一個整數,如果大于等于60則輸出“及格”,否則輸出“不及格”。

    # 獲取用戶輸入
    score = int(input("請輸入成績(整數):"))# 判斷成績是否及格
    if score >= 60:print("及格")
    else:print("不及格")
    
  4. range(1, 10, 2) 生成了哪些數字?

    range(1, 10, 2) 表示從 1 開始,到 小于 10 的數字,每次增加 2,構成一個序列。

    range(start, stop, step)
    
    • start=1:起始值(包含)
    • stop=10:終止值(不包含)
    • step=2:步長,每次加 2

    ? 生成的數字:

    1, 3, 5, 7, 9
    

    因為:

     - 1 是起始- 加 2 → 3 ?- 加 2 → 5 ?- 加 2 → 7 ?- 加 2 → 9 ?- 再加 2 → 11 ?(超過 stop=10,終止)
    

    📌 輸出驗證代碼:

    for i in range(1, 10, 2):print(i, end=" ")
    

    輸出:

    1 3 5 7 9
    

程序設計題

  1. 打印九九乘法表(用嵌套循環)
    示例: 1x1=1 到 9x9=81

    # 九九乘法表
    for i in range(1, 10):  # 外層循環控制行(1~9)for j in range(1, i + 1):  # 內層循環控制列,j <= iprint(f"{j}x{i}={j*i}", end="\t")  # 使用制表符對齊輸出print()  # 每一行結束后換行
    

    ? 輸出結果:

    1x1=1
    1x2=2   2x2=4
    1x3=3   2x3=6   3x3=9
    1x4=4   2x4=8   3x4=12  4x4=16
    1x5=5   2x5=10  3x5=15  4x5=20  5x5=25
    1x6=6   2x6=12  3x6=18  4x6=24  5x6=30  6x6=36
    1x7=7   2x7=14  3x7=21  4x7=28  5x7=35  6x7=42  7x7=49
    1x8=8   2x8=16  3x8=24  4x8=32  5x8=40  6x8=48  7x8=56  8x8=64
    1x9=9   2x9=18  3x9=27  4x9=36  5x9=45  6x9=54  7x9=63  8x9=72  9x9=81
    
  2. 寫一個程序統計列表 [90, 87, 76, 65, 88] 中大于80的成績數量。

    # 成績列表
    scores = [90, 87, 76, 65, 88]# 計數器
    count = 0# 遍歷列表
    for score in scores:if score > 80:count += 1# 輸出結果
    print(f"大于80的成績有 {count} 個")
    

    ? 輸出結果:

    大于80的成績有 3

    💡 補充技巧:使用列表推導式也可以實現同樣的功能:

    scores = [90, 87, 76, 65, 88]
    count = len([s for s in scores if s > 80])
    print(f"大于80的成績有 {count} 個")
    
  3. 編寫一個循環,要求用戶輸入學生姓名,直到輸入”q”為止,并將所有學生姓名存儲在列表中。

    # 創建一個空列表用于存儲學生姓名
    students = []print("請輸入學生姓名(輸入 'q' 退出):")while True:name = input("學生姓名:")if name.lower() == 'q':break  # 如果輸入的是 q(不區分大小寫),退出循環students.append(name)# 輸出所有學生姓名
    print("\n錄入的學生姓名如下:")
    for student in students:print(student)
    

    ? 示例運行:

    請輸入學生姓名(輸入 'q' 退出):
    學生姓名:張三
    學生姓名:李四
    學生姓名:王五
    學生姓名:q錄入的學生姓名如下:
    張三
    李四
    王五
    

💡 實戰項目復盤建議

你已經做出了一個簡化版“學生管理系統”,這是你本周的里程碑成果,建議你:
? 自己從0再寫一次,不參考,鍛煉記憶和思維。
? 嘗試給系統增加功能(如:數據統計、分頁查看等)。
? 如果你有興趣,可以加一個簡單的登錄驗證系統。

import math# 登錄驗證信息
USERNAME = "admin"
PASSWORD = "123456"# 學生列表
students = []# 登錄驗證函數
def login():print("=== 學生管理系統登錄 ===")for _ in range(3):username = input("用戶名:")password = input("密碼:")if username == USERNAME and password == PASSWORD:print("? 登錄成功!\n")return Trueelse:print("? 用戶名或密碼錯誤,請重試。\n")print("?? 登錄失敗,程序退出。")return False# 添加學生
def add_student():name = input("請輸入姓名:")age = int(input("請輸入年齡:"))gender = input("請輸入性別(男/女):")score = float(input("請輸入成績:"))students.append({"name": name, "age": age, "gender": gender, "score": score})print("? 學生添加成功。\n")# 查看學生(分頁)
def view_students():if not students:print("?? 暫無學生記錄。\n")returnpage_size = 3total = len(students)pages = math.ceil(total / page_size)while True:try:page = int(input(f"請輸入要查看的頁碼(1~{pages}):"))if 1 <= page <= pages:start = (page - 1) * page_sizeend = start + page_sizeprint(f"\n📄 第 {page} 頁(共 {pages} 頁):")for i, stu in enumerate(students[start:end], start=1):print(f"{start+i}. 姓名:{stu['name']} | 年齡:{stu['age']} | 性別:{stu['gender']} | 成績:{stu['score']}")print()breakelse:print("?? 頁碼輸入錯誤!")except ValueError:print("?? 請輸入數字頁碼!")# 查詢學生
def search_student():keyword = input("請輸入要查詢的學生姓名關鍵詞:")found = [stu for stu in students if keyword in stu["name"]]if found:print("\n🔍 查詢結果:")for stu in found:print(f"姓名:{stu['name']} | 年齡:{stu['age']} | 性別:{stu['gender']} | 成績:{stu['score']}")else:print("?? 未找到相關學生。\n")# 刪除學生
def delete_student():name = input("請輸入要刪除的學生姓名:")for stu in students:if stu["name"] == name:students.remove(stu)print("? 學生刪除成功。\n")returnprint("?? 未找到該學生。\n")# 統計信息
def statistics():if not students:print("?? 暫無學生記錄。\n")returntotal = len(students)avg = sum([s["score"] for s in students]) / totalpassed = len([s for s in students if s["score"] >= 60])print(f"\n📊 當前共 {total} 名學生")print(f"🎯 平均成績:{avg:.2f}")print(f"? 及格人數:{passed},及格率:{(passed/total)*100:.1f}%\n")# 主程序
def main():if not login():returnwhile True:print("==== 學生信息管理系統 ====")print("1. 添加學生")print("2. 查看所有學生(分頁)")print("3. 查詢學生")print("4. 刪除學生")print("5. 統計信息")print("6. 退出系統")choice = input("請輸入操作編號(1-6):")if choice == '1':add_student()elif choice == '2':view_students()elif choice == '3':search_student()elif choice == '4':delete_student()elif choice == '5':statistics()elif choice == '6':print("👋 退出系統,再見!")breakelse:print("?? 無效的選項,請重新輸入。\n")# 啟動程序
if __name__ == "__main__":main()

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/82606.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/82606.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/82606.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Pycharm and Flask 的學習心得(9)

request對象&#xff1a; 1. request包含前端發送過來的所有請求數據 將from表單里的內容CV到request里面&#xff0c;可以添加if語句來做判斷出請求類型后的操作 在網頁上的表單上input的數據&#xff0c;后端如何獲取呢&#xff1f; request對象獲取前端發送來的數據 // …

設計模式-依賴倒轉原則

依賴倒轉原則 依賴倒轉原則 (Dependency Inversion Principle, DIP) 是面向對象設計中 SOLID 原則的第五個原則。 它包含兩條核心思想&#xff1a; 高層模塊不應該依賴于低層模塊。兩者都應該依賴于抽象。 高層模塊 (High-level modules): 通常包含復雜的業務邏輯和策略&…

AI賦能引爆短劇全球化風潮,騰訊云媒體處理助力短劇平臺出海吸金

2023年&#xff0c;中國短劇市場以全平臺8000萬日投放、近500億規模的爆發式增長震驚行業。緊湊的內容、爽快的劇情令國內觀眾迅速愛上了幾分鐘一集的微短劇。然而在平臺內卷、監管收緊、巨頭入場等因素的沖擊下&#xff0c;不到兩年時間&#xff0c;這條賽道就已陷入紅海。但與…

開源第三方庫發展現狀

摘要&#xff1a;當前&#xff0c;開源第三方庫生態正呈現爆發式增長趨勢。GitHub 目前已托管超過 4.2 億個代碼倉庫&#xff0c;遠超早期統計的 1 億規模&#xff0c;顯示出開發者社區的活躍度持續攀升。同時&#xff0c;37 個主流包管理器所維護的開源組件數量可能已達到數千…

服務器開機自啟動服務

前言&#xff1a; 將服務器中腳本開啟自啟動執行 步驟&#xff1a; 1.創建一個 systemd 服務文件: /etc/systemd/system/ 目錄下創建一個新的服務文件。例如&#xff0c;命名為 myapp.service&#xff1a; sudo nano /etc/systemd/system/myapp.service2.編寫 [Unit] Descri…

采用Bright Data+n8n+AI打造自動化新聞助手:每天5分鐘實現內容日更

一、引言 在信息爆炸的時代&#xff0c;作為科技領域的內容創作者&#xff0c;我每天都要花費2-3小時手動收集行業新聞、撰寫摘要并發布到各個社群。直到我發現Bright Datan8nAI這套"黃金組合"&#xff0c;才真正實現了從"人工搬運"到"智能自動化&qu…

ROS云課三分鐘-3D性能測試supertuxkart和游戲推薦等-國際象棋

ROS云課三分鐘-破壁篇GCompris-一小部分支持Edu應用列表-2025-CSDN博客 很多時候&#xff0c;有一種思維定勢&#xff0c;將人鎖住&#xff0c;人口就是囚。 口人囚~口加人等于囚-CSDN博客 如果突破&#xff0c;跳出問題&#xff0c;再看問題。 這門課程&#xff0c;或者這個平…

學習率及相關優化參數詳解:驅動模型高效訓練

一、引言 在模型微調的核心參數體系中&#xff0c;優化相關參數是決定訓練效率與模型性能的關鍵變量。它們如同精密機械的齒輪&#xff0c;彼此聯動、相互影響&#xff0c;共同調控著模型在參數空間中的搜索路徑。本文將圍繞學習率、訓練輪數、批處理大小、梯度累積和學習率調…

golang 柯里化(Currying)

使用場景&#xff1a;參數在語義上屬于不同組&#xff0c;Go 語法無法在單次調用中聲明多組可變參數&#xff0c;通過柯里化可以實現分步接收參數。 有的參數是在不同時間段產生&#xff0c;使用Currying可以讓函數記住&#xff08;緩存&#xff09;參數&#xff0c;避免應用代…

電腦革命家測試版:硬件檢測,6MB 輕量無廣告 清理垃圾 + 禁用系統更新

各位電腦小白和大神們&#xff0c;我跟你們說啊&#xff01;有個超牛的東西叫電腦革命家測試版&#xff0c;這是吾愛破解論壇的開發者搞出來的免費無廣告系統工具集合&#xff0c;主打硬件檢測和系統優化&#xff0c;就像是魯大師這些軟件的平替。下面我給你們嘮嘮它的核心功能…

R 語言科研繪圖第 52 期 --- 網絡圖-分組

在發表科研論文的過程中&#xff0c;科研繪圖是必不可少的&#xff0c;一張好看的圖形會是文章很大的加分項。 為了便于使用&#xff0c;本系列文章介紹的所有繪圖都已收錄到了 sciRplot 項目中&#xff0c;獲取方式&#xff1a; R 語言科研繪圖模板 --- sciRplothttps://mp.…

EfficientLLM: Efficiency in Large Language Models 高效大模型

目錄 第1章&#xff1a;引言第2章&#xff1a;觀察與見解2.1 總體觀察&#xff08;Overall Observations&#xff09;2.2 從EfficientLLM基準中得出的新見解 第3章&#xff1a;背景3.1 大語言模型&#xff08;LLMs&#xff09;3.2 提升LLMs效率的方法3.2.1 硬件創新3.2.2 軟件優…

SFTP工具類實現文件上傳下載_

import com.jcraft.jsch.*; import com.jcraft.jsch.ChannelSftp.LsEntry;import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.*;/*** SFTP工具類*/ public class SftpFile {static Sessio…

RuoYi前后端分離框架將前端dist資源集成到Jar包中獨立部署

一、背景 .NET體系下通常采用服務端渲染(如Razor Pages)或直接包含前端資源,而Java Spring Boot項目雖支持靜態資源打包,但Vue CLI工程需要獨立的構建流程。主管要求將編譯后的Vue工程直接嵌入JAR包中方便維護,本人不推薦這樣,原因有三: 第一、Vue CLI需要npm run buil…

基于 Flink+Paimon+Hologres 搭建淘天集團湖倉一體數據鏈路

摘要&#xff1a;本文整理自淘天集團高級數據開發工程師朱奧老師在 Flink Forward Asia 2024 流式湖倉論壇的分享。內容主要為以下五部分&#xff1a; 1、項目背景 2、核心策略 3、解決方案 4、項目價值 5、未來計劃 01、項目背景 1.1 當前實時數倉架構 當前的淘天實時架構是從…

SIGCHLD信號--補充

進程一章講過用wait和waitpid函數清理僵尸進程,父進程可以阻塞等待子進程結束,也可以非阻 塞地查詢是否有子進程結束等待清理(也就是輪詢的方式)。采用第一種方式,父進程阻塞了就不 能處理自己的工作了;采用第二種方式,父進程在處理自己的工作的同時還要記得時不時地輪詢一 下,…

即插即用!全新記憶回溯策略:一種元啟發式算法的進化更新機制,含完整免費MATLAB代碼

1. 簡介 元啟發式算法的搜索域總是不斷變化&#xff0c;這使得難以適應多樣化的優化問題。為了克服上述問題&#xff0c;提出了一種稱為記憶回溯策略&#xff08;MBS&#xff09;的進化更新機制&#xff0c;包括思維階段、回憶階段和記憶階段。總體而言&#xff0c;MBS的采用通…

Spring AI框架快速入門

??前言&#xff1a;在經歷了八個里程碑式的版本之后&#xff08;M1~M8&#xff09;&#xff0c;Spring AI 1.0 正式版本&#xff0c;終于在 2025 年 5 月 20 日正式發布&#xff0c;這是另一個新高度的里程碑式的版本&#xff0c;標志著 Spring 生態系統正式全面擁抱人工智能…

Python實戰:打造高效通訊錄管理系統

&#x1f4cb; 編程基礎第一期《8-30》–通訊錄管理系統 &#x1f4d1; 項目介紹 在信息化時代&#xff0c;高效管理個人或團隊聯系人信息變得尤為重要。本文將帶您實現一個基于Python的通訊錄管理系統&#xff0c;該系統采用字典數據結構和JSON文件存儲&#xff0c;實現了聯系…

89. Java 數字和字符串 - Math 類深入解析

文章目錄 89. Java 數字和字符串 - Math 類深入解析一、引言二、常量與基本方法2.1 Math 類常量2.2 絕對值和舍入絕對值方法舍入方法最小值和最大值 三、指數與對數方法四、三角函數方法五、總結 89. Java 數字和字符串 - Math 類深入解析 一、引言 在 Java 中&#xff0c;除…