Python基础
2026-10-18-python复盘
前言:
记录一下学的 Python 基础语法的复盘。
主要梳理了变量、循环、条件判断、列表等基础知识
1. 输出 print( )
首先得让电脑开口说话,顺便给它个“收纳盒”
1 | name = "战士" # 把文字装进叫 name 的盒子 |
name 和 HP 就是收纳盒上的标签。那个等号 = 不是数学里的“等于”,而是“装进去”的意思。电脑看到 HP = 100,就会在内存里拿出一个盒子,贴上 HP 的标签,把数字 100 放进去。
print 就是让电脑开口说话。而“变量”就像是贴了标签的收纳盒。你往盒子里装个数字“100”,贴上标签叫 血量,以后你跟电脑说“血量”,它就知道是那个 100。
我自己总结:
表格
| 学了什么 | 理解: |
|---|---|
| print( ) | 让电脑把字打在屏幕上 |
| 变量 | 给数据起个名,装进盒子 |
| 算术计算 | 让电脑当计算机,加减乘除它都会 |
2. 输入 input ( ) 和 int ( )
- 买奶茶任务
- 电脑得先问我带了多少钱,这就是 input( ) ,它会停下来等我打字。
- 但这里有个坑:只要是你用键盘敲进去的,它全当作“文字”处理。文字是没法算加减乘除的,
- 所以得用 int( )(整数)把文字“翻译”成真正的数字。
1 | money = input("你有多少钱?") # 电脑以为你输入的是字符串(文字),它不会算数 |
3. //、% 与 f""
算能买几杯奶茶时,用到了三个符号:
- //( 双斜杠 ):叫整除。10块钱买3块一杯的奶茶,它只留整数3,砍掉小数。
- %( 百分号 ):叫取余。买完奶茶剩下的1块钱零钱,就是余数。
- f"" : 你可以把它当成 填空模板 。在字符串前面加个 f ,里面用大括号 {} 挖好坑。电脑运行到这,就会自动把变量里的值填进坑里。
1 | print(f"能买{money // 3}杯,还剩{money % 3}块钱") |
4. 条件判断与比较运算
这里的核心就是 if( 如果 ),也就是给电脑立规矩。不过有个容易踩的坑,就是 ==。
一个等号( = )是往盒子里装东西( 赋值 ),两个等号( == )才是问电脑这俩一样吗?( 比较 )。
如果第一个条件没中呢?这时候就用 elif( 其实就是 else if 的缩写 ),意思是“如果上面那个不行,再看看我这个”。最后拿个 else 来兜底,意思是“前面都不满足,那就走这条吧”。
还有个很常用的词叫 and。你可以把它当成一个极其严格的裁判,意思是“并且”。它要求两边的条件必须同时成立才行。
像我在下面写的这个猜拳游戏:
1 | if 玩家 == "石头" and 电脑 == "剪刀": |
电脑在判断的时候,必须同时确认两件事:1. 玩家出的是石头吗? 2. 电脑出的是剪刀吗? 只要这两个条件里有一个没对上( 比如电脑出的是布 ),and 两边就不满足,电脑就不会打印“玩家赢”。
( 这里为了方便看懂,我直接用了中文当变量名,正常写的时候最好用英文比如 player 和 computer )
5. for 循环 / range ( 累加 )
- 场景:假设你有个金币存钱罐,第1天存1块,第2天存2块……算算连续存几天能有多少金币。
- for:就是“循环”,让电脑把一件事干很多遍。
- range ( 1, 6 ):用来规定到底干几遍。代表从 1 开始,到 5 结束,根本不包含6,所以实际上只循环了5次。( 包头不包尾,不包含6 )。
- 累加:就是找个空盒子( 总数=0 ),每次循环把新金币装进去( 总数 = 总数 + 新金币 )。
来看实操:
1 | 总数 = 0 |
( 这里说一句:python里的缩进很严格,代码里写的总数 = 总数 + i 前面一定要加4个空格( 或者点 Tab 键 ),这样才能写 print 。不然电脑会直接报错 )
6. 循环 while 和 break
场景:猜数字,不猜对不结束。
- while:当……的时候。只要条件成立,就一直循环。比如 while 没猜中,它就会一直让你猜。
- break:强行打断。猜对了,直接用 break 把整个循环停止,结束。
下面是我写的基础逻辑:
1 | while True: # 死循环(永远为真) |
完整一点:
1 | import random |
( 这里我写的 count = 0 和 count += 1 写了没用到,忘记打印了😀,建议在 print(f"猜对了!“) 后面,或者在循环外面加上一句:print(f"你一共猜了{count}次!”)。
- 第一句 import random 是干嘛的?
简单来说就是“呼叫场外外援”。如果没有这个外援,它是不会凭空想出一个随机数的。所以我们得去 Python 的官方武器库里,把 random( 随机 )这个工具箱借过来用。 - random.randint ( 1, 100 )
让电脑在 1 到 100 里随便挑个数字藏起来,这就是我们要猜的目标。 - count = 0 和 count += 1
我们拿个小本子( count = 0 )。玩家每猜一次,本子上就画一笔( count += 1 ),最后好看看玩家到底猜了几次。 - 最后 while True + break
while True 就是一个“无底洞”,意思是:只要没碰到 break,游戏就永远不结束。
玩家输入数字后,电脑开始做判断:- 如果 if num == guess_number:( 一模一样 ),立马喊“猜对了!”,并触发 break 结束无底洞,游戏结束。
- 如果 elif num < guess_number:( 猜小了 ),提示一下,继续循环。
- 如果上面都没中,那肯定就是猜大了 else。
跑一遍( 假设电脑想的是50 )
- 你输入 30,判断发现 30 < 50,电脑提示:“猜小了!”
- 你输入 80,判断发现不相等也不小于,直接走 else,提示:“猜大了!”
- 你输入 50,判断 50 == 50,提示:“猜对了!”,遇到 break,循环结束。
7. 列表 / 下标 ( 装一堆数据的箱子 )
场景:战队战绩统计,好几个人得分,总不能给每个人都起一个变量名吧?这时候就需要 列表 了。
- 列表 [] :之前的变量只能装一个,现在用方括号框起来,能装一排数据。
- 下标 [] :找箱子里的东西要排号。重点:电脑是从 0 开始数数的,找第一个得喊 [0][-1]可以直接拿最后一个数。
处理列表的三个工具:
- len( ) :数个数。不用自己一个个数,它直接告诉你箱子里有几样东西。
- max( ) :找最大。电脑会在箱子里自动比大小,把最大的拿出来。
- sum( ) :算总账。自动把箱子里所有的数加起来。
比如这行代码:
1 | 得分 = [80, 95, 100] |
OK 接下来写个成绩录入系统:
第1步:准备好空箱子
1 | total_students = int(input("输入人数:")) # 问老师一共要录入几个人 |
( 注意这里的 input 外面套了 int( ),因为等会儿要用人数做数学比较,得先把文字变成真数字。 )
第2步:只要人数没录满,就一直循环问
1 | while num <= total_students: |
第3步:录入完成,展示一下箱子里的所有成绩,顺便找最高分
1 | print(score_list) |
第4步:算总分
1 | all_score = sum(score_list) |
第5步:用 for 循环挨个检查,统计及格人数
1 | pass_count = 0 # 及格人数计数器,初始为0 |
第6步:报出最终结果
1 | # +str() 是因为文字和数字不能直接拼,要把数字变成文字。 |
- append ( ) 怎么理解?
之前创建列表 得分 = [80, 95, 100] 是直接装好数据。但很多时候,数据是一边敲键盘、电脑一边收的。append( ) 就是“追加”,像往购物车里不断扔东西一样,把新输入的数字塞到列表的尾巴上。 - 为什么有了 +str ( ) 还要用 f"“?
看最后两行打印代码。第一个用 +str( ),像强行用胶水把文字和数字粘起来,很麻烦;而 f”“( 填空模板 )就好用多了,直接在话里留个空位,变量自动就填进去了,推荐以后多用 f”"!
8. 双重循环 / 枚举
场景:假设你忘了两位数的密码,但你知道密码的每一位只可能是 1、2、3。怎么找回来?让电脑把所有组合都试一遍( 这就叫暴力枚举 )。
- 双重循环:就是套娃。外面的大圈跑一次,里面的小圈要跑完一整圈。用来把所有组合都凑出来。
看演示:
1 | for i in range(3): # 外圈(比如第一位) |
假设密码的第一位和第二位,数字都在 1 到 3 之间:
1 | for i in range(1, 4): # 外层循环:代表密码的第一位(从1试到3) |
为什么叫套娃? 因为外面的圈( i )每转 1 次,里面的圈( j )就要老老实实地转完 3 次。等里面转完了,外面才转第 2 次,里面再跟着转 3 次。
我脑补了一下电脑实际上是怎么跑的:
第一轮:外面 i 拿到 1,里面 j 开始跑圈。
- 里面试了 1,拼出来 11。
- 里面试了 2,拼出来 12。
- 里面试了 3,拼出来 13。
第二轮:里面跑完了,外层 i 变成 2,里面 j 清空重来,又开始跑圈。
- 里面试了 1,拼出来 21。
- 里面试了 2,拼出来 22。
- 里面试了 3,拼出来 23。
第三轮:外层 i 变成 3,里面再跑一圈:31, 32, 33。
这跟破解有什么关系?
如果在这个双重循环的最里面加一句判断( 用到之前学的 if )
1 | # 假设真正的密码是 23 |
( 差不多了,今天脑细胞已阵亡,就到这吧 )
