python编程新手常见踩坑点总结(一)

          在 Python 编程过程中,很多初学者和经验不足的开发者常常会遇到一些常见的错误。本文总结了一些我踩过的也是很常见的 Python 易错点,并提供了相应的解释,希望能帮助大家规避这些问题,提高编码效率。

1. Python 代码缩进

      Python 依赖缩进来标识代码块,因此缩进错误往往是初学者最容易踩的坑之一。

1.1 if 语句中的缩进

x = 8
if x > 5:
    print("x 大于 5")
print("这条语句不属于 if 代码块")

上面代码中,print("x 大于 5") 只有在 x > 5 时才执行,而 print("这条语句不属于 if 代码块") 一定会执行,因为它没缩进。

1.2 循环结构中的缩进

for i in range(3):
    print(f"外部循环:{i}")
    for j in range(2):
        print(f" 内部循环:{j}")
    print("结束内部循环")

  print(f"外部循环:{i}") 属于外部循环。

  print(f" 内部循环:{j}") 进一步缩进,属于内部循环。

  print("结束内部循环") 缩进和外部循环一致,但不属于内部循环,因此每次外部循环执行 1 次。

1.3 类和方法中的缩进

class Mammal:
    def __init__(self):
        print("人类自然语言")
    
    def sex(self):
        print("生物性别")

  __init__ 方法的缩进表示它属于 Mammal 类,sex方法同样如此。

  print("人类自然语言") 进一步缩进,表示它属于 __init__ 方法。

1.4 函数作用域中的缩进

def greet():
    print("你好")
    print("欢迎使用 Python")

print("这是函数外部代码")
greet()

  greet() 内部的 print 语句只有在函数被调用时才执行。

  print("这是函数外部代码") 没有缩进,因此会直接执行。

2. for 和 while 循环的区别

    forwhile是两种常见的循环结构,它们的适用场景有所不同:

    for 循环:用于已知的循环次数,可迭代对象(字符串、字典等)遍历。

    while 循环:用于未知的循环次数,适用于条件判断。

2.1 for循环的基本用法(以对一个序列进行遍历为例)

fruits = ["桔子", "香蕉", "苹果"]
for fruit in fruits:
    print(fruit)

        输出的结果便是(fruits 中字符串依次被打印出来):

        for循环里面一般可以使用range()指定循环次数:

for i in range(3):  # range(3) 生成 [0,1,2],共循环 3 次
    print(i)

        此时循环次数是固定的,一共执行 3 次。打印出来的结果是:

2.2 while循环的基本用法

        在 Python 的 while 循环中,并不一定需要设置初始值,但通常情况下,使用 while 需要有一个变量来控制循环条件,而这个变量往往需要初始化。

2.2.1需要初始值的情况:

while 依赖于某个变量作为循环条件时,该变量通常需要先初始化,否则会导致错误。

x = 0  # 这里 x 需要一个初始值
while x < 5:
    print(x)
    x += 1

这里 最开始x = 0 初始值是必要的,否则 while x < 5 这一行就会出现NameError: name 'x' is not defined。这段代码的意思是初始x=0,每次循环打印x的值,x依次加1,并且当x不满足小于5时结束循环。

2.2.2不需要设置初始值的情况:

while 语句的判断条件不依赖于某个事先定义的变量,而是直接基于输入或某些函数的返回值,则不需要显式初始化变量。(以基于用户输入为例)

while input("请输入 'exit' 退出:") != "exit":
    print("继续循环")
print("循环结束")

代码解读:当输入的内容不等于exit成立时,打印“继续循环”, 否则就打印“循环结束”。

3. end关键字

print 语句中,默认会换行,但 end 关键字可以控制输出格式:

for i in range(3):
    print(i, end=" ")  # 输出:0 1 2 (用空格隔开)

4.for...elsewhile...else结构

4.1 forwhile 循环的 else 语句仅在循环没有 break 时执行

(没有break的案例)

for i in range(3):
  • range(3) 生成一个 从 0 到 2(不包括 3) 的整数序列,相当于 [0, 1, 2]

  • i 依次取值 0 → 1 → 2,并执行 print(i) 语句。

 else:
  • for 循环 正常执行完所有循环 (没有被 break 提前终止) 时,执行 else 语句中的代码。

  • 这里 else 部分的 print("循环正常结束") 会被执行。

for i in range(3):
    print(i)
else:
    print("循环正常结束")

输出的结果为:

 4.2如果 for 循环中有 break,则 else 不执行(含有break的案例):

for i in range(3):
    print(i)
    if i == 1:
        break
else:
    print("循环正常结束")  # 不会执行

输出的结果为:

循环被 break 语句提前终止,则 else 代码不会执行,即“循环正常结束”不会被打印出来。)

 

总结

  1. Python 依赖缩进,不当的缩进可能导致逻辑错误或 IndentationError

  2. forwhile 循环的 else 语句仅在循环没有 break 时执行。

  3. continue 跳过当前循环的剩余部分,break 直接终止循环。

  4. end 关键字可以控制 print 语句的输出格式。

     希望我的这些总结能帮助你在 Python 编程中避免常见的错误,提高编码效率! 🚀

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值