常见格式规则速查表
| 写法 | 含义 | 例子(pi=3.14159) |
|---|---|---|
{pi:.2f} | 保留2位小数 | 3.14 |
{pi:.0f} | 保留0位小数 | 3 |
{pi:.2%} | 转成百分比,保留2位 | 314.16% |
{pi:10.2f} | 占10个字符宽,保留2位小数(右对齐) | " 3.14" |
{pi:<10.2f} | 左对齐,占10个字符宽 | "3.14 " |
什么时候用for,什么时候用while(最实用的一张表)
| 场景 | 用什么 | 例子 |
|---|---|---|
| 遍历列表/字符串里的每个元素 | for | for letter in "hello": |
| 固定做N次(比如做10次俯卧撑) | for | for i in range(10): |
| 直到用户输入正确为止 | while | 上面的猜数字 |
| 不断读取数据直到文件末尾 | while | while 还有数据: |
| 死循环等待用户指令(如游戏主循环) | while | while True: + 判断退出条件 |
核心原则:能for就for,因为for更安全(不容易死循环),只有当你确实不知道循环次数时才用while。
f 的全称和意思
f 是 “format”(格式化) 的缩写。
简单说:在字符串前面加个f,你就可以在字符串里直接写变量,Python会自动把变量值填进去。
直接对比:有f和没有f的区别
不用f(老式写法,比较麻烦)
python
name = "小明"
age = 18
print("我叫" + name + ",今年" + str(age) + "岁")
# 输出:我叫小明,今年18岁
缺点:要用+把字符串和变量拼起来,数字还得用str()转换,很啰嗦。
用了f(现代写法,推荐)
python
name = "小明"
age = 18
print(f"我叫{name},今年{age}岁")
# 输出:我叫小明,今年18岁
优点:直接在字符串里用{变量名}占个位置,Python自动帮你填进去,清爽多了!
详解
python
print(f"我喜欢吃{fruit}")
拆开看:
f→ 告诉Python:这个字符串里有用{}包起来的变量"我喜欢吃{fruit}"→ 正常字符串,但{fruit}会被替换成变量fruit的值
如果fruit = "苹果",那么:
- Python看到
f"我喜欢吃{fruit}",就把{fruit}替换成"苹果" - 最终打印出:
我喜欢吃苹果
f还能做更多有趣的事
1. 放多个变量
python
name = "小红"
score = 95
print(f"{name}考了{score}分,真棒!")
# 输出:小红考了95分,真棒!
2. 直接做计算
python
a = 10
b = 20
print(f"{a} + {b} = {a + b}")
# 输出:10 + 20 = 30
3. 控制小数位数(实用!)
python
pi = 3.1415926
print(f"π保留两位小数是:{pi:.2f}")
# 输出:π保留两位小数是:3.14
{pi:.2f} 的意思:显示pi,保留2位小数。
什么时候用f?
几乎任何时候,只要你需要在字符串里插入变量的值,都用f。它是Python 3.6版本以后才有的,但现在所有主流版本都支持,可以放心用。
f就是让你在字符串里用{变量名}占位,Python自动帮你填值,省去了拼字符串的麻烦。
.2e 就是科学计数法(scientific notation),其中:
.2表示保留2位小数e表示用科学计数法显示
直接看例子
python
big_num = 12345678
print(f"{big_num:.2e}")
输出:1.23e+07
意思是:1.23 × 10⁷(也就是 1.23 乘以 10 的 7 次方 = 12,300,000)
更多例子帮你理解
python
num1 = 12345678
print(f"{num1:.2e}") # 输出:1.23e+07
num2 = 0.00012345
print(f"{num2:.2e}") # 输出:1.23e-04(也就是 1.23 × 10⁻⁴)
num3 = 987654321
print(f"{num3:.3e}") # 输出:9.877e+08(保留3位小数)
num4 = 1000
print(f"{num4:.2e}") # 输出:1.00e+03
什么时候用科学计数法?
场景1:数字太大或太小
比如天文数字(地球到太阳距离约 149,600,000 公里),写成 1.50e+08 更简洁。
场景2:科学计算、数据分析
处理大量数据时,科学计数法能统一显示格式,方便对比。
科学计数法格式拆解
| 显示结果 | 含义 |
|---|---|
1.23e+07 | 1.23 × 10⁷(正7次方 = 大数) |
1.23e-04 | 1.23 × 10⁻⁴(负4次方 = 很小的数) |
9.88e+02 | 9.88 × 10² = 988 |
规律:
e+数字→ 数字很大(小数点向右移)e-数字→ 数字很小(小数点向左移)
^→ 居中对齐<→ 左对齐>→ 右对齐
我顺便给你个对比,让你更清楚:
python
text = "python"
print(f"{text:<10}") # 输出:'python '(左对齐,右边补空格)
print(f"{text:>10}") # 输出:' python'(右对齐,左边补空格)
print(f"{text:^10}") # 输出:' python '(居中对齐,两边补空格)
如果你想再玩得花一点
对齐时可以用其他字符填充(不一定是空格):
python
text = "python"
print(f"{text:*^10}") # 输出:**python**
print(f"{text:-<10}") # 输出:python----
print(f"{text:_>10}") # 输出:____python
这在做美观的输出表格时特别好用!
格式化技巧总结
| 写法 | 用途 | 例子 |
|---|---|---|
{变量:.2f} | 保留2位小数 | 3.14 |
{变量:.2%} | 转百分比,保留2位 | 85.60% |
{变量:.2e} | 科学计数法 | 1.23e+07 |
{变量:05d} | 补0到5位 | 00123 |
{变量:^10} | 居中,占10位 | python |
{变量:*^10} | 居中,用*填充 | **python** |
break和print对齐- 它们都属于
else代码块 else属于if,if在while内部- 所以
break在while内部 ✅
对比:错误 vs 正确
❌ 错误写法(break 在循环外)
python
while guess != secret:
guess = int(input("猜数字:"))
if guess == secret:
print("猜对了!")
# break 在这里,和 while 平级,在循环外面!
break # ❌ 报错
✅ 正确写法(break 在循环内)
python
while guess != secret:
guess = int(input("猜数字:"))
if guess == secret:
print("猜对了!")
break # ✅ 在循环内部
break 和 continue 的区别(快速复习)
| 关键字 | 作用 | 例子 |
|---|---|---|
break | 立即结束整个循环,跳出循环体 | 猜对了,游戏结束 |
continue | 跳过本次循环的剩余代码,直接进入下一次循环 | 输入错误,重新输入 |
直观对比:
python
# break 示例
i = 0
while i < 5:
i = i + 1
if i == 3:
break # 到 3 就彻底结束
print(i)
# 输出:1, 2(到3就停了)
# continue 示例
i = 0
while i < 5:
i = i + 1
if i == 3:
continue # 到 3 就跳过,继续下一次
print(i)
# 输出:1, 2, 4, 5(跳过了3)
