【Python】从基础到进阶(一):了解Python语言基础以及变量的相关知识

在这里插入图片描述

🔥 个人主页:空白诗

在这里插入图片描述

文章目录

    • 引言
    • 一、Python简介
      • 1.1 历史背景
      • 1.2 设计哲学
      • 1.3 语言特性
      • 1.4 应用场景
      • 1.5 为什么选择Python
    • 二、Python语言基础
      • 2.1 注释规则
        • 2.1.1 单行注释
        • 2.1.2 多行注释
        • 2.1.3 文件编码声明注释
      • 2.2 代码缩进
      • 2.3 编码规范
        • 2.3.1 命名规范
        • 2.3.2 每行字符数
        • 2.3.3 空行
        • 2.3.4 缩进
        • 2.3.5 运算符空格
        • 2.3.6 函数参数
        • 2.3.7 文档字符串(Docstring)
        • 2.3.8 模块导入
        • 2.3.9 不要在一行中使用多个语句
    • 三、Python中的变量
      • 3.1 变量的定义与使用
      • 3.2 常见数据类型
        • 数值类型
        • 序列类型
        • 集合类型
        • 映射类型
        • 3.2.1 整数(int)
        • 3.2.2 浮点数(float)
        • 3.2.3 复数(complex)
        • 3.2.4 字符串(str)
        • 3.2.5 列表(list)
        • 3.2.6 元组(tuple)
        • 3.2.7 字典(dict)
        • 3.2.8 集合(set)
        • 3.2.9 冻结集合(frozenset)
      • 3.3 动态类型与类型转换
      • 3.4 变量的作用域
        • 3.4.1 局部作用域
        • 3.4.2 全局作用域
    • 总结

在这里插入图片描述

引言

Python是一种广泛应用的高级编程语言,以其简洁易读的语法和强大的功能吸引了众多开发者。从Web开发、数据分析到人工智能,Python在各个领域都有着广泛的应用。本教程将带您从零开始,深入了解Python的基础知识,涵盖Python语言基础、变量和数据类型等内容。无论您是编程新手还是有经验的开发者,希望这篇文章能帮助您更好地掌握Python,为未来的编程之旅奠定坚实的基础。


一、Python简介

Python是一种高级、解释型、通用的编程语言,由Guido van Rossum于20世纪90年代初创立。Python以其简洁易读的语法和强大的功能而闻名,使其成为新手和经验丰富的开发人员的首选语言之一。

1.1 历史背景

Python的设计初衷是为了强调代码的可读性和简洁性。Guido van Rossum在1989年的圣诞节期间开始编写Python,目的是为了创建一种既能处理系统管理任务又能进行大规模应用开发的语言。1991年,Python 0.9.0版本发布,自此Python逐步发展成为一门功能强大且灵活的编程语言。

1.2 设计哲学

Python的设计哲学强调代码的可读性和简洁性,被总结为“Pythonic”风格。其核心思想包括:

  • 明确优于晦涩:代码应该是清晰的,容易理解的。
  • 简单优于复杂:应当尽量使用简单的解决方案。
  • 复杂优于凌乱:如果需要复杂性,应保持有条理。
  • 可读性很重要:代码不仅是写给机器执行的,更是写给人看的。

这些原则在Python的Zen of Python中有详细描述,可以通过在Python解释器中输入import this来查看。

1.3 语言特性

Python具有许多吸引开发者的特性:

  • 易读易写:Python的语法设计简洁明了,非常接近人类语言。
  • 丰富的标准库:Python拥有一个强大的标准库,涵盖了从网络编程到文本处理的各个方面,使开发者可以快速构建各种应用。
  • 跨平台:Python是跨平台的,可以在Windows、macOS和Linux等操作系统上运行。
  • 动态类型:Python是动态类型语言,变量在使用时可以随时改变其类型。
  • 解释执行:Python代码是逐行解释执行的,不需要编译,因此开发调试周期较短。
  • 社区支持:Python拥有一个活跃且庞大的社区,提供了丰富的第三方库和框架,帮助开发者快速解决各种问题。

1.4 应用场景

Python的广泛应用涵盖了多个领域:

  • Web开发:如Django、Flask等Web框架帮助快速构建高性能的Web应用。
  • 数据科学与机器学习:Pandas、NumPy、Scikit-learn等库使得数据处理与分析变得高效便捷。
  • 自动化脚本:Python的简洁语法使其成为编写自动化脚本的理想选择。
  • 人工智能与深度学习:TensorFlow、PyTorch等框架在AI与深度学习领域被广泛使用。
  • 科学计算:SciPy、Matplotlib等库广泛用于科学研究和数据可视化。

1.5 为什么选择Python

选择Python作为编程语言有许多原因:

  • 学习曲线平缓:Python的语法简洁,逻辑清晰,适合初学者学习。
  • 生产效率高:Python的高层次数据结构和动态类型结合快速原型开发能力,使得开发效率大大提高。
  • 强大的社区和生态系统:丰富的第三方库和活跃的社区支持,使得Python在解决实际问题时得心应手。
  • 多领域应用:无论是Web开发、数据分析、AI还是自动化,Python都能提供强有力的支持。

总之,Python因其简洁、高效和强大的功能而成为现代编程世界中不可或缺的一部分。无论你是初学者还是经验丰富的开发者,Python都能帮助你高效地完成各种任务。


二、Python语言基础

在这里插入图片描述

在开始编写Python代码之前,了解Python的注释规则、代码缩进和编码规范是非常重要的。这些基础知识不仅有助于编写清晰易懂的代码,还能提高代码的可维护性和团队协作效率。

2.1 注释规则

注释是代码中非执行的一部分,用于解释代码的意图、功能或逻辑。Python支持单行注释和多行注释。

2.1.1 单行注释

单行注释以井号 (#) 开头,井号后的内容会被解释器忽略。单行注释通常用于解释代码行的作用。

# 这是一个单行注释
print("Hello, World!")  # 这是在代码行末的注释
2.1.2 多行注释

Python没有专门的多行注释语法,但可以使用多个单行注释或者三引号字符串 ('''""") 来实现多行注释。尽管三引号字符串本质上是字符串,但如果它们不赋值给任何变量,则可以作为注释使用。

'''
这是一个多行注释
可以写在多行上
解释代码的详细信息
'''"""
这是另一个多行注释的例子
同样可以写在多行上
"""
2.1.3 文件编码声明注释

在处理包含非ASCII字符的Python文件时,指定文件的编码方式是很重要的。Python源文件默认使用UTF-8编码,但你也可以显式声明文件的编码方式。文件编码声明通常放在文件的开头,通过特殊的注释来实现。

文件编码声明注释的格式如下:

# -*- coding: <encoding-name> -*-

例如,若要声明文件使用UTF-8编码,可以在文件的第一行或第二行添加如下注释:

# -*- coding: utf-8 -*-

#!/usr/bin/env python
# -*- coding: utf-8 -*-

第一种声明方法仅指定编码方式,而第二种方法则结合了Unix系统中的“shebang”行(用于指定脚本的解释器),并声明了文件编码。

下面是一个示例,包含中文字符并声明了文件编码:

# -*- coding: utf-8 -*-print("你好,世界!")  # 输出包含中文字符的字符串

声明文件编码有助于避免在处理包含非ASCII字符的文件时出现编码错误,确保代码在不同环境中的一致性和可移植性。

综上所述,通过合理使用单行注释、多行注释和文件编码声明注释,可以显著提升代码的可读性、可维护性和兼容性。

2.2 代码缩进

代码缩进是Python语法的核心部分。Python使用缩进来表示代码块,不同于其他语言使用大括号 {} 或关键词(如 beginend)来界定代码块。正确的缩进不仅让代码更加美观,还能避免语法错误。

  • 缩进规范:Python官方建议每一级缩进使用4个空格,而不是使用制表符(Tab)。
  • 一致性:确保在整个代码中使用统一的缩进方式,要么全用空格,要么全用Tab,但推荐使用空格。

以下是一个使用缩进的示例:

if True:print("True")  # 这行缩进了4个空格
else:print("False")  # 这行也缩进了4个空格

2.3 编码规范

为了使Python代码更加规范和可读,Python社区提出了一系列编码规范,其中最著名的是PEP 8。以下是一些关键的编码规范:

2.3.1 命名规范
  • 变量名:使用小写字母和下划线(snake_case),如 my_variable
  • 函数名:同样使用小写字母和下划线(snake_case),如 my_function
  • 类名:使用大写字母开头的单词(PascalCase),如 MyClass
  • 常量名:使用全大写字母和下划线(UPPER_CASE),如 MY_CONSTANT
2.3.2 每行字符数

每行代码的字符数应尽量控制在79个字符以内,文档字符串或注释则限制在72个字符以内。超过这个长度时,应考虑换行。

# 这是一个例子,展示如何在长行代码中使用续行符
long_variable_name = (some_value + another_value - yet_another_value + more_values - last_value)
2.3.3 空行
  • 顶级定义(如函数和类)之间使用两个空行。
  • 类和函数内的方法之间使用一个空行。
class MyClass:def __init__(self):passdef my_method(self):passdef my_function():pass
2.3.4 缩进
  • 使用空格:每级缩进使用4个空格,而不是制表符(Tab)。
  • 一致性:确保整个代码中使用统一的缩进方式。
def my_function():if True:print("Hello, World!")  # 这行缩进了4个空格
2.3.5 运算符空格
  • 运算符两侧加空格:在赋值(=)、比较(==)和算术运算符(+, -, *, /)的两侧加上空格。
x = 1
y = x + 2
if x == 1:print("x is 1")
2.3.6 函数参数
  • 函数参数间不加空格:在函数调用和定义时,参数之间不加空格。
# 函数定义时的参数无空格
def my_function(param1, param2):return param1 + param2# 函数调用时的参数无空格
result = my_function(1, 2)
2.3.7 文档字符串(Docstring)
  • 函数和类的文档字符串:函数和类应使用三引号('''""")编写文档字符串,描述其功能、参数和返回值。
def my_function(param1, param2):"""这是一个示例函数。参数:param1: 第一个参数param2: 第二个参数返回:两个参数的和"""return param1 + param2
2.3.8 模块导入
  • 导入顺序:首先导入标准库模块,然后导入第三方模块,最后导入本地应用/库的特定模块。每组导入之间使用一个空行分隔。
  • 导入具体名称:尽量避免使用 from module import * 这种导入方式。
import os
import sysimport numpy as np
import pandas as pdfrom my_module import my_function
2.3.9 不要在一行中使用多个语句
  • 单行单个语句:尽量避免在一行中使用多个语句。
x = 1
y = 2
print(x)
print(y)

通过遵循这些基础语法规则和编码规范,可以提高代码的可读性、可维护性和团队协作效率,为后续的Python编程打下坚实的基础。


三、Python中的变量

变量是编程中的基本概念之一,用于存储和操作数据。在Python中,变量的定义和使用相对简单,但理解变量的类型和作用范围对于编写高效、可靠的代码至关重要。

3.1 变量的定义与使用

在Python中,变量的定义不需要显式声明其类型,只需使用赋值语句即可:

x = 10  # 定义一个整数变量
name = "Alice"  # 定义一个字符串变量
pi = 3.14  # 定义一个浮点数变量
is_active = True  # 定义一个布尔变量

变量名应该具有描述性,以便代码的可读性和可维护性。变量名必须以字母(a-z,A-Z)或下划线(_)开头,后续字符可以是字母、数字(0-9)或下划线。变量名对大小写敏感。

3.2 常见数据类型

Python提供了多种内置数据类型,主要分为数值类型、序列类型、集合类型和映射类型。理解这些数据类型及其特性,有助于我们高效地进行数据处理和操作。下面将对这些常见数据类型进行详细介绍。

数值类型
  • 整数(int):没有小数部分的数字,范围可变。
  • 浮点数(float):带有小数部分的数字,通常用于表示需要精确到小数点的数值。
  • 复数(complex):包含实部和虚部的数字,格式为a + bj
序列类型
  • 字符串(str):由字符组成的不可变序列,用于表示文本。
  • 列表(list):有序的可变集合,可以包含任意类型的元素。
  • 元组(tuple):有序的不可变集合,一旦定义,元素不能被修改。
集合类型
  • 集合(set):无序的不重复元素集合,常用于去重和集合运算。
  • 冻结集合(frozenset):不可变的集合。
映射类型
  • 字典(dict):无序的键值对集合,每个键必须是唯一的,通常用于存储具有映射关系的数据。

下面是对这些数据类型的详细解释和示例代码。

3.2.1 整数(int)

整数是没有小数部分的数字,Python中的整数可以是任意大小。

a = 5
b = -10
c = 12345678901234567890
3.2.2 浮点数(float)

浮点数是带有小数部分的数字,通常用于表示需要精确到小数点的数值。

pi = 3.14159
gravity = 9.81
3.2.3 复数(complex)

复数包含实部和虚部,格式为 a + bj

z = 1 + 2j
print(z.real)  # 输出:1.0
print(z.imag)  # 输出:2.0
3.2.4 字符串(str)

字符串是由一系列字符组成的文本数据,可以使用单引号或双引号表示。

greeting = "Hello, World!"
name = 'Alice'

字符串是不可变的,这意味着字符串中的字符不能被修改。

3.2.5 列表(list)

列表是一个有序的可变集合,可以包含任意类型的元素。

numbers = [1, 2, 3, 4, 5]
names = ["Alice", "Bob", "Charlie"]
mixed = [1, "Alice", 3.14, True]

列表可以进行切片操作、添加、删除和修改元素。

3.2.6 元组(tuple)

元组是一个有序的不可变集合,一旦定义,元素不能被修改。

point = (1, 2)
rgb = (255, 0, 0)

元组通常用于表示一组相关的值。

3.2.7 字典(dict)

字典是一个无序的键值对集合,每个键必须是唯一的,通常用于存储具有映射关系的数据。

person = {"name": "Alice", "age": 25, "city": "New York"}
scores = {"math": 90, "english": 85}

可以通过键来访问、添加和修改字典中的值。

3.2.8 集合(set)

集合是一个无序的不重复元素集合,常用于去重和集合运算。

unique_numbers = {1, 2, 3, 4, 5}
names_set = {"Alice", "Bob", "Charlie"}
3.2.9 冻结集合(frozenset)

冻结集合与集合类似,但不可变。

frozen_set = frozenset([1, 2, 3, 4, 5])

通过了解和掌握这些常见的数据类型及其特性,可以在编写Python代码时更灵活地处理不同类型的数据。

3.3 动态类型与类型转换

Python是动态类型语言,变量的类型是在运行时确定的,并且可以随时更改。

x = 10  # 整数
x = "Hello"  # 现在是字符串

可以使用内置函数进行类型转换:

x = 3.14
y = int(x)  # 将浮点数转换为整数,结果为3s = "123"
n = int(s)  # 将字符串转换为整数,结果为123b = bool(1)  # 将整数转换为布尔值,结果为True

3.4 变量的作用域

变量的作用域决定了变量在程序中的可见性和生命周期。Python中的作用域分为局部作用域、全局作用域和内建作用域。

3.4.1 局部作用域

局部变量是在函数内部定义的变量,只在函数内部可见。

def my_function():x = 10  # 局部变量print(x)my_function()
print(x)  # 这里会报错,因为x在函数外部不可见
3.4.2 全局作用域

全局变量是在函数外部定义的变量,可以在整个模块中访问。

x = 10  # 全局变量def my_function():print(x)  # 可以访问全局变量my_function()
print(x)  # 全局变量可以在函数外部访问

使用 global 关键字可以在函数内部修改全局变量。

x = 10def my_function():global xx = 20my_function()
print(x)  # 结果为20

通过理解和掌握这些基本概念和操作,你可以有效地在Python中使用变量,为后续的编程打下坚实的基础。


总结

通过本教程,我们系统地介绍了Python的基础知识,包括注释规则、代码缩进和编码规范等Python语言基础,以及Python中的变量和常见数据类型。掌握这些基础知识,您将能够编写出更规范、可读性更高的Python代码。这不仅有助于提高您的编程效率,还能为后续深入学习和应用Python打下坚实的基础。希望您能通过不断实践,进一步巩固所学知识,逐步迈向Python编程的更高水平。

在这里插入图片描述

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

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

相关文章

【pytorch02】手写数字问题引入

1.数据集 现实生活中遇到的问题 车牌识别身份证号码识别快递单的识别 都会涉及到数字识别 MNIST&#xff08;收集了很多人手写的0到9数字的图片&#xff09; 每个数字拥有7000个图像train/test splitting:60k vs 10k 图片大小28 28 数据集划分成训练集和测试集合的意义…

springboot + Vue前后端项目(第十七记)

项目实战第十七记 写在前面1. 个人信息1.1 Person.vue1.2 设置路由并改动Header.vue1.3 动态刷新头像1.3.1 在保存个人信息时&#xff0c;触发方法1.3.2 父组件Manage.vue1.3.3 再将user以prop方式传递给子组件Header.vue1.3.4 Header.vue使用user 1.4 效果图 2. 修改密码2.1 前…

配置 python 脚本操作Excel 环境

在已装python的前提下 一、安装依赖库 pip install pandas pip install openpyxl安装完后&#xff0c;可以在 Python 中运行以下命令来查看 pandas 或 openpyxl 的安装路径&#xff1a; import pandas as pd print(pd.__path__)import openpyxl print(openpyxl.__path__)二、测…

【CT】LeetCode手撕—415. 字符串相加

目录 题目1- 思路2- 实现⭐415. 字符串相加——题解思路 3- ACM 实现 题目 原题连接&#xff1a;415. 字符串相加 1- 思路 模式识别&#xff1a;字符串相加 逆向遍历过程模拟 数据结构 ① String res &#xff1a;记录res 、② carry 记录进位值① 定义两个整数遍历 nums1 …

本地项目上传到gitee

本地项目通过webstorm上传到gitee 1.登录gitee选择新建仓库 2.输入新建仓库的名字&#xff08;名字与本地项目名一致&#xff09; 3.复制链接 4.找到本地项目&#xff0c;选中地址输入cmd打开命令提示框 5.输入git init初始化git&#xff0c;生成.git文件 6.webstorm中打开项目…

Android修行手册-ImageView的adjustViewBounds和设置透明度

点击跳转>GameFramework文档系列&#xff08;二&#xff09;- 场景相关 点击跳转>GameFramework文档系列&#xff08;三&#xff09;- 日志管理和UI 点击跳转>GameFramework文档系列&#xff08;四&#xff09;- 事件订阅 点击跳转>保姆式Cocos合成大西瓜案例 …

JDK19特性

JDK19特性 一、JAVA19概述 JDK 19 2022 年 9 月 20 日正式发布以供生产使用,非长期支持版本。不过,JDK 19 中有一些比较重要的新特性值得关注。 JDK 19 只有 7 个新特性: JEP 405: Record Patterns(记录模式)[1] (预览)JEP 422: Linux/RISC-V Port[2]JEP 424: Foreign …

qt 一个可以拖拽的矩形

1.概要 2.代码 2.1 mycotrl.h #ifndef MYCOTRL_H #define MYCOTRL_H#include <QWidget> #include <QMouseEvent>class MyCotrl: public QWidget {Q_OBJECT public://MyCotrl();MyCotrl(QWidget *parent nullptr); protected:void paintEvent(QPaintEvent *even…

DVWA 靶场 CSP Bypass 通关解析

前言 DVWA代表Damn Vulnerable Web Application&#xff0c;是一个用于学习和练习Web应用程序漏洞的开源漏洞应用程序。它被设计成一个易于安装和配置的漏洞应用程序&#xff0c;旨在帮助安全专业人员和爱好者了解和熟悉不同类型的Web应用程序漏洞。 DVWA提供了一系列的漏洞场…

高速公路声光预警定向广播助力安全出行

近年来&#xff0c;高速重大交通事故屡见不鲜&#xff0c;安全管控一直是高速运营的重中之重。如何利用现代化技术和信息化手段&#xff0c;创新、智能、高效的压降交通事故的发生概率&#xff0c;优化交通安全管控质量&#xff0c;是近年来交管部门的主要工作&#xff0c;也是…

STM32人工智能检测-筛选机器人

前言 本文描述了一种使用STM32进行机器人筛选的办法。筛选对象是我的粉s&#xff0c;删选办法是瞪眼法。 问题现象 每次当我的STM32 向外界发出一篇新的的报文&#xff0c;总能在1H之内得到focus&#xff0c;格式如下 [title][body][tail]于是我对各个focus 我报文的对象进…

Flask之模板

前言&#xff1a;本博客仅作记录学习使用&#xff0c;部分图片出自网络&#xff0c;如有侵犯您的权益&#xff0c;请联系删除 目录 一、模板的基本用法 1.1、创建模板 1.2、模板语法 1.3、渲染模板 二、模板辅助工具 2.1、上下文 2.2、全局对象 2.3、过滤器 2.4、测试…

C语言| 数组倒置算法

数组倒置 方法一 1 定义两个数组a[5] b[5],两个循环变量i j 2 用for循环&#xff0c;把数组a的最后一个数&#xff0c;赋值给数组b第一个元素 3 输出数组b 【程序代码】 #include <stdio.h> int main(void) { int a[5] {11, 22, 33, 44, 55}; int b[5]; …

进程、线程的区别

进程、线程的关系 开工厂生产手机&#xff0c;制作一条生产线&#xff0c;这个生产线上有很多的器件以及材料。一条生产线就是一个进程。 只有生产线是不够的&#xff0c;使用找五个工人来进行生产&#xff0c;这个工人能够利用这些材料最终一步步的将手机做出来&#xff0c;这…

内外网映射访问内网服务器

如果本地有公网ip&#xff0c;比如连接的宽带有公网ip&#xff0c;可以直接通过路由配置转发就行了&#xff0c;如果本地没有公网ip&#xff0c;那就需要通过下面这种方式来访问内网服务器了。 1&#xff1a;首先内网服务器需要连接外网&#xff0c;可以通过网线或者WiFi都可以…

RabbitMQ实践——交换器(Exchange)绑定交换器

在《RabbitMQ实践——交换器&#xff08;Exchange&#xff09;和绑定&#xff08;Banding&#xff09;》一文中&#xff0c;我们实验了各种交换器。我们可以把交换器看成消息发布的入口&#xff0c;而消息路由规则则是由“绑定关系”&#xff08;Banding&#xff09;来定义&…

【JUC并发编程】

Java并发常见面试题总结&#xff08;上&#xff09; 线程 什么是线程和进程? 何为进程? 进程是程序的一次执行过程&#xff0c;是系统运行程序的基本单位&#xff0c;因此进程是动态的。系统运行一个程序即是一个进程从创建&#xff0c;运行到消亡的过程。 在 Java 中&am…

Docker 搭建 MinIO 对象存储

Docker 搭建 MinIO 对象存储 一、MinIO MinIO 是一个高性能的对象存储服务器&#xff0c;用于构建云存储解决方案。MinIO 允许你存储非结构化数据&#xff08;如图片、视频、日志文件等&#xff09;以对象的形式。MinIO 提供简单的部署选项和易于使用的界面&#xff0c;允许你…

深度神经网络——什么是降维?

引言 什么是降维&#xff1f; 降维是用于降低数据集维度的过程&#xff0c;采用许多特征并将它们表示为更少的特征。 例如&#xff0c;降维可用于将二十个特征的数据集减少到仅有几个特征。 降维通常用于无监督学习任务 降维是一个用于降低数据集维度的过程&#xff0c;采用许…

【Mysql服务无法启动,使用 ibd数据文件恢复数据方法(windows版本)】

Mysql服务无法启动&#xff0c;使用 ibd数据文件恢复数据方法&#xff08;windows版本&#xff09; 前置条件 1.需要安装python3环境 2.查询本地python版本命令 python --version一&#xff1a;工具下载 1.github工具下载链接&#xff1a; https://github.com/ddcw/ibd2sql…