Python 新手最容易踩的坑

Python新手最容易踩的坑

  • 缩进错误
  • 忘记引入模块
  • 使用未定义的变量
  • 不理解变量作用域
  • 字符串格式化错误
  • 乱用关键字
  • 多余的符号
  • 本期图书推荐:Python算法小讲堂---39个算法案例带你玩转Python
    • 内容简介
    • 获取方式

在学习 Python 的过程中,新手往往会遇到一些常见的陷阱,这些陷阱可能会导致代码错误或者不符合预期。本文将介绍一些 Python 新手最容易踩到的坑,并提供一些解决方案,帮助读者避免这些陷阱。

缩进错误

Python 使用缩进来表示代码块,而不是像其他编程语言那样使用大括号。因此,缩进错误是新手经常遇到的问题之一。在 Python 中,同一个代码块内的语句必须具有相同的缩进级别。

if True:
print("Indented incorrectly!")  # 这行代码缩进错误

✨解决方案: 在编辑器中启用缩进显示,并始终保持一致的缩进风格,通常是使用四个空格。

忘记引入模块

Python 中的模块是可重用的代码单元,但是在使用模块中的函数或变量之前,必须先引入它们。如果忘记引入模块,Python 解释器将无法识别模块中的内容。

# 没有引入 math 模块
result = math.sqrt(25)

✨解决方案: 在代码的开头引入所有需要使用的模块,或者使用完整的模块名称来调用函数或变量。

使用未定义的变量

在使用变量之前,必须先对其进行定义。如果使用了未定义的变量,Python 解释器会引发 NameError 异常。

print(x)  # x 未定义

✨解决方案: 确保在使用变量之前进行定义,并避免使用未定义的变量。

不理解变量作用域

Python 中的变量作用域分为全局作用域和局部作用域。在函数内部定义的变量通常具有局部作用域,而在函数外部定义的变量具有全局作用域。在函数内部使用全局变量时,需要使用 global 关键字声明。

x = 10def increment():x += 1  # 尝试修改全局变量 x,会引发 UnboundLocalError 异常increment()

✨解决方案: 理解 Python 中的变量作用域规则,并注意在函数内部正确处理全局变量。

字符串格式化错误

在 Python 中,有多种方式可以格式化字符串,例如使用 % 运算符、str.format() 方法或者 f-字符串。如果格式化字符串时出现错误,可能会导致程序崩溃或者输出不正确的结果。

name = "Alice"
age = 30
print("Her name is %s and she is %d years old" % name, age)  # 格式化错误

✨解决方案: 熟悉不同的字符串格式化方法,并确保格式化字符串与提供的参数数量和类型匹配。

乱用关键字

Python 中有许多保留的关键字,这些关键字具有特定的含义,并被用于编程语言的语法和结构中。新手可能会误用这些关键字,导致代码出错或无法正常运行。
示例:

# 尝试将关键字作为变量名True = False
None = 10

✨解决方案: 避免将保留关键字用作变量名或标识符。如果不确定某个名称是否为关键字,可以通过以下代码查看

import keyword  # 引入关键字模块print(keyword.kwlist)  # 打印关键字列表

多余的符号

在编写 Python 代码时,多余的符号可能会导致语法错误或者代码行为不符合预期。这些符号包括不必要的空格、括号、逗号等。
示例:

# 不必要的空格
x =  10   + 5# 多余的逗号
numbers = [1, 2, 3,]# 不匹配的括号
result = (5 + 3
print(result)

✨解决方案: 仔细检查代码,删除多余的符号,并确保符号的使用符合 Python 的语法规范。建议使用代码编辑器或 IDE 提供的自动格式化功能来帮助排除多余的符号。

本期图书推荐:Python算法小讲堂—39个算法案例带你玩转Python

内容简介

推荐博主经常看的一本Python算法类书籍,
《Python算法小讲堂(视频精讲版)》通过由浅入深的39个Python语言实际案例,不仅帮助初学者学习Python语言的基本使用,还可以使读者从数据、算法等多个角度体验编程的魅力。本书从“如何解决问题”出发,讲述了常用的人工智能编程语言——Python语言的基本使用,帮助读者学习如何进行简单的数据处理,了解什么是算法,领略算法的魅力。当然,最终都是让初学者一行行地亲手写出代码,在计算机上运行自己写出的程序。

在这里插入图片描述

获取方式

京东购买链接:https://item.jd.com/14294684.html

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/16532.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何用pyecharts工具制作动态变化柱状图

# # # 导入柱状图的包 # from pyecharts.charts import Bar # # # 创建一个柱状图 # bar1 Bar() # bar1.add_xaxis(["中国", "美国", "英国"]) # bar1.add_yaxis("1900年GDP总量", [10, 20, 30]) # # # 生成图 # bar1.render() # # #…

5月23日零钱兑换+组合总和Ⅳ

377.组合总和Ⅳ 给你一个由 不同 整数组成的数组 nums ,和一个目标整数 target 。请你从 nums 中找出并返回总和为 target 的元素组合的个数。 题目数据保证答案符合 32 位整数范围。 示例 1: 输入:nums [1,2,3], target 4 输出&#xf…

全免费的数据恢复工具哪个好?分享2024年性价比超高的12款数据恢复软件!

当您丢失重要文件时,您应该可不想遇到措手不及的情况吧?相反,您需要在系统中使用一些可靠的数据恢复软件,但是全免费的数据恢复工具哪个好呢?别担心,本文将帮助您选择最适合您的解决方案。 如何挑选一款合适…

后端开发面试题3(附答案)

前言 在下首语言是golang,所以会用他作为示例。 原文参见 @arialdomartini的: Back-End Developer Interview Questions 设计模式相关问题 1. 请用一个例子表明,全局对象是邪恶的存在。 在Go语言中,虽然没有传统意义上的全局变量(全局对象),但可以通过包级别的变量来模…

【Rust日报】嵌入式 Rust:一份简化指南

EvilHelix 编辑器 EvilHelix 是一个采用 Vim 风格的模态编辑器,旨在提供快速且高效的编辑体验。它是 Helix 编辑器的一个分支,增加了 Vim binding,同时积极同步上游的特性,兼备了 Vim 和 Hexli 的优点: Vim 风格的模态…

blkio限制容器iops

/sys/fs/cgroup/blkio/blkio.throttle.read_iops_device /sys/fs/cgroup/blkio/blkio.throttle.write_iops_device lsblk 查看设备 kubectl get pod xxx -oyaml | grep -i id find / -name blkio.throttle.write_iops_device | grep id

栈和队列OJ题详解

一.有效的括号: 20. 有效的括号 - 力扣(LeetCode) 首先拿到这个题目,我的第一个思路是利用双指针来走,看看是不是匹配的 但是这种情况就把双指针的这个思路直接pass了,明明是匹配的括号,用双指…

1.3 Windows 的 CLion 开发环境安装

目录 1 C 语言的那些事 2 开发环境安装及新建项目 2.1 安装 MinGW 编译器 2.2 安装 CLion 开发环境

Android Audio基础——AudioFlinger回放录制线程(七)

AndioFlinger 作为 Android 的音频系统引擎,重任之一是负责输入输出流设备的管理及音频流数据的处理传输,这是由回放线程 PlaybackThread 及其派生的子类和录制线程 RecordThread 进行的。 一、基础介绍 1、关系图 ThreadBase:PlaybackThread 和 RecordThread 的基类。 Re…

人工智能最新的新闻动态

一、AI交互内容创新国际竞赛启动 主办单位:南京市科协启动时间:2024年5月26日目的与意义:鼓励全球科技人才参与AI创新,拓宽南京与海外科技人才的交流渠道,注入国际化活力,推动AI技术创新应用,挖…

react diff 原理

React的Diff算法(也称为React Diff原理或React Diffing策略)是React框架中用于优化DOM更新的核心机制。其核心思想是通过比较新旧Virtual DOM的差异,仅更新有变化的部分,以提高渲染效率。以下是React Diff算法的主要原理和策略&am…

【linux】多线程(2)

文章目录 线程的应用生产消费者模型自制锁生产消费队列成员参数生产函数消费函数 任务处理方式主函数 POSIX信号量sem_wait()sem_post() 线程池应用场景示例 单例模式饿汉实现单例 吃完饭, 立刻洗碗, 这种就是饿汉方式. 因为下一顿吃的时候可以立刻拿着碗就能吃饭.懒汉实现单例…

visual studio code生成代码模板

编写需要生成代码片段的代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"wid…

【C++】二分查找算法:x的平方根

1.题目 2.算法思路 看到题目可能不容易想到二分查找。 这题考察我们对算法的熟练程度。 二分查找的特点&#xff1a;数组具有二段性(不一定有序)。 题目中没有数组&#xff0c;我们可以造一个从0到x的数组&#xff0c;然后利用二分查找找到对应的值即可。 3.代码 class S…

ionic关于@angular版本报错解决方案(有效)

最近学校要求使用ionicangular学习&#xff0c;但是出现下面问题&#xff0c;这里我就分享一个我亲测有效的解决方案&#xff0c;提供学习&#xff08;在VScode中&#xff09; npm error code ERESOLVE npm error ERESOLVE could not resolve npm error npm error While resol…

C语言生成正弦波测试数据易懂版本

以往生成正弦波数据, 各个参数之间的关系总是不明确, 现在这个函数的代码非常明确的区分了各个参数之间的相互关系. #include <stdio.h> #include <math.h>/*** brief 生成正弦波测试数据* * param data 存放生成的数据的数组* param n 数据的长度 一共采样了多少…

源码编译安装LAMP(安装apeche mysql php 论坛 网站 巨详细版)

目录 一.LAMP架构相关概述 1.各组件作用 Linux&#xff08;平台&#xff09; Apache&#xff08;前台&#xff09; MySQL&#xff08;后台&#xff09; PHP/Perl/Python&#xff08;中间连接&#xff09; 总结 二.编译安装Apache httpd服务 1.关闭防火墙&#xff0c;将…

解决SpringBoot中插入汉字变成?(一秒解决)

在这里url后面加一行配置即可&useUnicodetrue&characterEncodingUTF-8即可 解释 spring.datasource.url: 这里包含了数据库的URL&#xff0c;以及额外的参数如useUnicodetrue用于启用Unicode字符集支持&#xff0c;characterEncodingUTF-8用于指定字符编码为UTF-8&…

Java面向对象-常用类(Math类)

常用类-Math类 Math 类提供了一序列基本数学运算和几何函数的方法。 Math类是类&#xff0c;并且它的所有成员变量和成员方法都是静态的。 1 Math类的常量和常用方法 常量 static doubleE 比任何其他值都更接近 e&#xff08;即自然对数的底数&#xff09;的 double 值。stati…

什么是SPI,和API有啥区别

Java 中区分 API 和 SPI&#xff0c;通俗的讲&#xff1a;API 和 SPI 都是相对的概念&#xff0c;他们的差别只在语义上&#xff0c;API 直接被应用开发人员使用&#xff0c;SPI 被框架扩展人员使用。 API (Application Programming Interface) 定义: API是一组定义了软件组件…