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

news2024/11/25 6:49:21

在这里插入图片描述

🔥 个人主页:空白诗

在这里插入图片描述

文章目录

    • 引言
    • 一、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):
        pass

    def my_method(self):
        pass


def 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 sys

import numpy as np
import pandas as pd

from 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)  # 将浮点数转换为整数,结果为3

s = "123"
n = int(s)  # 将字符串转换为整数,结果为123

b = 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 = 10

def my_function():
    global x
    x = 20

my_function()
print(x)  # 结果为20

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


总结

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

在这里插入图片描述

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

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

相关文章

镜像发布至dockerHub

1、login 没有账号的话去注册一个 https://hub.docker.com docker login 输入账号密码和账号2、修改镜像名格式 可以直接招我的修改 格式为你的 hub名/镜像名 3、推送

2D图形引擎Cairo例子

代码; #include<cairo.h> int main() {cairo_surface_t *surface;cairo_t *cr;surfacecairo_image_surface_create(CAIRO_FORMAT_ARGB32,320,240);crcairo_create(surface);cairo_set_source_rgb(cr,0,1,0);cairo_rectangle(cr,10,10,200,200);cairo_fill(cr);cairo_mov…

OpenMVS算法流程

OpenMVS安装使用教程 源码与注释代码地址 . 源码: GitHub - cdcseacave/openMVS: open Multi-View Stereo reconstruction library . 注释代码: GitHub - electech6/openMVS_comments: open Multi-View Stereo reconstruction library 依赖项与安装工具说明 OpenMVS 依赖的…

分享一个 Fail2ban 过滤规则

今天明月给大家分享个 Fail2ban 的过滤&#xff08;Filter&#xff09;规则&#xff0c;有关 Fail2ban 的文章大家可以参考【服务器全面使用 Fail2Ban 初见成效】和【使用 Fail2ban 禁止垃圾采集爬虫&#xff0c;保护 Nginx 服务器】等文了解&#xff0c;总之 Fail2ban 是 Linu…

求解FAT表大小

540M/1K 540k 540 * 1024 b 512k对应2的19次方<540k<1024k对应2的20次方 取比540k大的1024k 八位一个字节 20对应2.5个字节 所以FAT占用 2.5*5401350k 1.2G/1k1.2M 1M1024k对应2的20次方<1.2M<2M对应2的21次方 取2M 21/8是循环小数不可以直接用 所以四舍五…

hdfs高可用文件系统架构

1、整体架构 2、角色简介 2.1、namenode NameNode 是 HDFS 集群中的核心组件&#xff0c;负责管理文件系统的元数据、处理客户端请求、管理数据块、确保数据完整性和高可用性。由于其重要性&#xff0c;NameNode 的性能和可靠性直接影响整个 HDFS 集群的性能和可靠性。在生产…

GD32 MCU的选项字节是什么?

GD32 MCU的选项字节是什么&#xff0c;有什么功能呢&#xff1f;选项字节被误篡改如何回复&#xff1f; 读者朋友们是否会有以上的疑问&#xff0c;首先我们先为大家介绍选项字节是什么以及选项字节的功能。 以GD32F30X系列MCU为例&#xff0c;其选项字节说明如下表所示&…

Acrobat Pro DC 2021:Mac/Win平台上全面高效的PDF编辑器

Acrobat Pro DC 2021是一款在Mac和Windows平台上广受欢迎的PDF编辑器&#xff0c;它凭借其全面的功能和高效的性能&#xff0c;为用户提供了卓越的PDF处理体验。 一、编辑功能全面强大 Acrobat Pro DC 2021允许用户轻松创建、编辑、合并、转换、签署和分享PDF文件。无论是对P…

慧天卓特:6月18日FYDI旱情监测分析

旱情监测 - 6月18日 重点干旱区域FYDI监测图 黄淮海流域和新疆内蒙甘肃干旱区域分布地图如下所示&#xff1a; 图1 重点旱情区域FYDI分布图 &#xff08;上&#xff1a;黄淮海流域&#xff1b;下&#xff1a;新疆内蒙甘肃地区&#xff09; 重点省市干旱面积占比统计 重点省…

upload-labs实验过程中遇到的问题

第6题问题&#xff1a;500异常码 发现500异常码&#xff0c;这个应该是apache版本问题&#xff0c;可更换其他版本&#xff0c;或者更换为nginx 12题问题&#xff1a;上传出错 出现上传错误&#xff0c;大概率是php版本问题&#xff0c;需要下载php5.2.17版本的php或者更换其他…

让全栈AI的旗帜猎猎作响:“逆行者”华为云

如果有人问&#xff0c;AI大模型行业&#xff0c;最近的风向是什么&#xff1f;相信很多人都会说&#xff0c;是“内卷”。 近段时间&#xff0c;“降价”成了大模型的第一关键词。各大云服务商争相加入AI降价潮&#xff0c;甚至有公司模型降价达到了97%的惊人幅度。加上厂商抢…

无限滚动表格

纵向无限滚动 单元格内部横向滚动 <!--* Description: 横向、纵向滚动表格* Author: liyanfeng liyanfenghopewind.com* Date: 2024-06-15 16:06:57* LastEditors: liyanfeng liyanfenghopewind.com* LastEditTime: 2024-06-20 17:15:37* FilePath: \plus-ui\src\componen…

为什么要选择华为 HCIE-Security 课程?

2020 年我国网络安全市场规模达到 680 亿元&#xff0c;同比增长 25%。随着对网络安全的愈加重视及布局&#xff0c;市场规模将持续扩大。 近年来&#xff0c;随着“云大物工移智”等新兴技术的快速发展和普及应用&#xff0c;数字化已经融入社会经济生活的方方面面&#xff0c…

数据结构与算法笔记:高级篇 - 拓扑排序:如何确定代码源文件的编译依赖关系?

概述 从本章开始&#xff0c;就开始进入高级篇。相对基础篇&#xff0c;高级篇涉及的知识比较零散&#xff0c;不是太系统。所以&#xff0c;我会围绕一个实际软件开发的问题&#xff0c;在阐述具体解决方法的过程中&#xff0c;将涉及的知识点给你详细讲解出来。 所以&#…

人工智能在空间转录组学领域的最新研究进展|顶刊速递·24-06-22

小罗碎碎念 本期推文的主题&#xff1a;人工智能在空间转录组学领域的最新进展 提到空间转录组学就不可避免会与单细胞测序、免疫治疗以及肿瘤微环境扯上关系&#xff0c;所以这也是当下的热点之一。 我个人认为这一部分门槛相对于影像组学和病理组学较高&#xff0c;需要具备…

二维码美化,修改二维码颜色样式,添加logo,文字描述

在如今的社会&#xff0c;二维码已成为我们日常生活中不可或缺的一部分&#xff0c;无论是支付、访问网站、社交媒体互动&#xff0c;还是分享信息&#xff0c;二维码都扮演着重要角色。然而&#xff0c;标准的黑白二维码有时可能显得过于单调&#xff0c;缺乏吸引力。为了提升…

心明眼亮 洞悉万物

如何洞悉事物的本质呢&#xff1f; 阳明先生&#xff1a;世间之事&#xff0c;纷繁复杂&#xff0c;不可能一一研究得过来。 圣人只需要把内心的明镜擦亮&#xff0c;而无需担心外部的事事物物在镜子中如何映照。 —— 外界事物是无穷无尽的&#xff0c;永远探究不完&#xf…

jsp-curd+分页倒导航案例

效果图 <!DOCTYPE html> <% page language"java" contentType"text/html; charsetUTF-8" pageEncoding"UTF-8"%> <html lang"en"> <head><meta charset"UTF-8"><title>学生管理</…

前后端交互的弯弯绕绕

前后端交互&#xff1a; &#x1f197;&#xff0c;收拾一下心情让我们来聊一聊AJax吧&#xff0c;随着前端的飞速发展&#xff0c;前后的交互也发生了天翻地覆的变化&#xff1a; 前后端交互的方式有很多&#xff1a; AJAX、表单提交、WebSocket、RESTful API、... 这对新入…

基于SpringBoot+大数据城市景观画像可视化设计和实现

&#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN作者、博客专家、全栈领域优质创作者&#xff0c;博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌&#x1f497; &#x1f31f;文末获取源码数据库&#x1f31f; 感兴趣的可以先收藏起来&#xff0c;…