【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.mzph.cn/web/31976.shtml

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

相关文章

AlphaMissense:预测错义变异的致病性

错义变异或错义变体&#xff08;missense variation或missense variants&#xff09;是改变蛋白质氨基酸序列的遗传变异。致病性错义变异会严重破坏蛋白质功能&#xff0c;在目前观察到的400多万个错义变异中&#xff0c;只有2%在临床上被确定为致病或良性。对剩下的类型不明的…

力扣随机一题 模拟+字符串

博客主页&#xff1a;誓则盟约系列专栏&#xff1a;IT竞赛 专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ 1910.删除一个字符串中所有出现的给定子字符串【中等】 题目&#xff1a; …

【数据结构与算法】树的遍历,森林遍历 详解

树的先根遍历、后根遍历对应其二叉树的哪种遍历 树的先根遍历对应其二叉树的先序遍历&#xff08;根-左-右&#xff09;。树的后根遍历对应其二叉树的中序遍历&#xff08;左-根-右&#xff09;。 森林的先根遍历、中根遍历对应其二叉树的哪种遍历? 森林的先根遍历对应其二…

Elasticsearch 数据提取 - 最适合这项工作的工具是什么?

作者&#xff1a;来自 Elastic Josh Asres 了解在 Elasticsearch 中为你的搜索用例提取数据的所有不同方式。 对于搜索用例&#xff0c;高效采集和处理来自各种来源的数据的能力至关重要。无论你处理的是 SQL 数据库、CRM 还是任何自定义数据源&#xff0c;选择正确的数据采集…

《Deep learning practice》learning notes

学习笔记&#xff1a; 【公开课】旷视x北大《深度学习实践》&#xff08;28课时全&#xff09; R Talk | 旷视科技目标检测概述&#xff1a;Beyond RetinaNet and Mask R-CNN 文章目录 Lecture 1: Introduction to Computer Vision and Deep Learning&#xff08;孙剑&#x…

系统架构师考点--数据库系统

大家好。今天我来总结一下数据库系统的相关考点。本考点一般情况下上午场考试占3-5分&#xff0c;下午场案例分析题也会出现。 一、数据库系统 数据&#xff1a;数据库中存储的基本对象&#xff0c;是描述事物的符号记录。数据的种类:文本、图形、图像、音频、视频、学生的档…

AI/ML 数据湖参考架构架构师指南

这篇文章的缩写版本于 2024 年 3 月 19 日出现在 The New Stack 上。 在企业人工智能中&#xff0c;主要有两种类型的模型&#xff1a;判别模型和生成模型。判别模型用于对数据进行分类或预测&#xff0c;而生成模型用于创建新数据。尽管生成式人工智能最近占据了新闻的主导地…

【PyTorch】【机器学习】图片张量、通道分解合成和裁剪

一、导入所需库 from PIL import Image import torch import numpy as np import matplotlib.pyplot as plt二、读取图片 pic np.array(Image.open(venice-boat.jpg))上述代码解释&#xff1a;先用Image.open()方法读取jpg格式图片&#xff0c;再用np.array()方法将图片转成…

DBeaver 数据结果集设置不显示逗号(太丑了)

从Navicat切换过来使用DBeaver&#xff0c;发现类似bigint 这种数据类型在结果集窗口中显示总是给我加上一个逗号&#xff0c;看着很不习惯&#xff0c;也比较占空间&#xff0c;个人觉得这种可读性也不好。 于是我在网上尝试搜索设置方法&#xff0c;可能我的关键词没命中&…

【ARMv8/ARMv9 硬件加速系列 2.4 -- ARM NEON Q寄存器与V寄存器的关系】

文章目录 Q 与 V 的关系向量寄存器 v 的使用赋值操作寄存器赋值总结Q 与 V 的关系 在ARMv8/v9架构中,v寄存器和q寄存器实际上是对相同的物理硬件资源的不同称呼,它们都是指向ARM的SIMD(单指令多数据)向量寄存器。这些寄存器用于高效执行向量和浮点运算,特别是在多媒体处理…

EM算法数学推导

EM算法可以看李航老师的《机器学习方法》、机器学习白板推导、EM算法及其推广进行学习。下文的数学推导出自“南瓜书”&#xff0c;记录在此只为方便查阅。

新手充电-boost升压电路解析

1.boost升压电路解析 本篇文章从充放电两个方面来对Boost电路的原理进行了讲解。并在最后补充了一些书本上没有的知识,整体属于较为新手向的文章,希望大家在阅读过本篇文章之后,能对Boost电路的基本原理有进一步了解。 Boost电路是一种开关直流升压电路,它能够使输出电压高…

HTTP/2 头部压缩 Header Compress(HPACK)详解

文章目录 1. HPACK 的工作原理1.1 静态表1.2 动态表 2. 压缩过程2.1 编码过程2.2 解码过程 3. HPACK 的优势 在HTTP1.0中&#xff0c;我们使用文本的形式传输header&#xff0c;在header中携带cookie的话&#xff0c;每次都需要重复传输几百到几千的字节&#xff0c;这着实是一…

尚品汇-(三)

maven之packaging标签 &#xff08;1&#xff09;项目创建父模块 首先设置 下Maven Maven&#xff1a;仓库地址&#xff1a;这里是腾讯云仓库 作为父模块&#xff0c;src没用&#xff0c;干掉src 这里我们是Maven创建的项目&#xff0c;想要项目变成SpringBoot的项目&#xf…

程序猿大战Python——面向对象——继承基础

定义类的几种语法 目标&#xff1a;了解定义类的标准语法。 我们知道&#xff0c;可以使用class关键字定义类。 在类的使用中&#xff0c;定义方式有三种&#xff1a; &#xff08;1&#xff09;【类名】 &#xff08;2&#xff09;【类名()】 &#xff08;3&#xff09;【…

MySQL表的增删改查初阶(下篇)

本篇会加入个人的所谓鱼式疯言 ❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言 而是理解过并总结出来通俗易懂的大白话, 小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的. &#x1f92d;&#x1f92d;&#x1f92d;可能说的不是那么严谨.但小编初心是能让更多人…

在线二维码解码器:将二维码转换成网址链接

在当今数字化时代&#xff0c;二维码&#xff08;QR码&#xff09;已成为一种便捷的信息传递工具。它不仅可以存储大量数据&#xff0c;还能快速分享信息。然而&#xff0c;有时我们需要将二维码中的内容转换为网址链接&#xff0c;以便在浏览器中直接访问。小编将详细介绍如何…

2024头歌数据库期末综合(部分题)

目录 第7关&#xff1a;数据查询三 任务描述 知识补充 答案 第8关&#xff1a;数据查询四 任务描述 知识补充 答案 本篇博客声明&#xff1a;所有题的答案不在一起&#xff0c;可以去作者博客专栏寻找其它文章。 第7关&#xff1a;数据查询三 任务描述 本关任务&#x…

[C++ STL] list 详解

标题&#xff1a;[C STL] vector 详解 水墨不写bug 正文开始&#xff1a; 一、背景 C语言阶段&#xff0c;我们如果想要使用链表&#xff0c;需要自己手动实现一个链表。这是非常低效的做法&#xff0c;C中的STL中提供了链表“ list ”&#xff0c;我们在包含头文件 <list…

小米15系列将首发骁龙8 Gen4 SoC

高通已确认2024年骁龙峰会定于10月21日举行。在这次峰会中高通将推出其最新的移动芯片Snapdragon 8 Gen4 SoC。著名科技博主DigitalChatStation今天证实&#xff0c;骁龙8 Gen4将以小米15系列首次亮相。这意味着小米15系列将是第一款使用这款新旗舰处理器的手机。 这不是小米第…