Python基础速通

Python基础速通

Python是一门强大的编程语言,广泛应用于数据分析、自动化、网络安全等多个领域。本文将系统地介绍Python的基础知识,包括环境配置、基础语法、数据结构、函数、面向对象编程以及常见的文件操作和异常处理技巧。

Python 环境安装

在开始编写Python代码之前,首先需要设置好开发环境:

安装Python

Python 3.x 是目前的主流版本,推荐安装 Python 3.10 版本。可以在 Python官网 下载并安装对应版本。

配置IDE

推荐使用 PyCharm 作为Python开发的IDE,它提供了丰富的开发工具和功能,如代码自动补全、调试等,帮助你高效编程。

Python 基础语法

print() 函数

print() 是Python最常用的输出函数,用于将数据打印到控制台。例如:

print("Hello, World!")
格式化字符串

在Python中,格式化字符串是将变量的值以特定格式嵌入到字符串中的一种方法。格式化字符串提供了一种便捷的方式,可以用来输出更易读、更具表现力的文本,特别是在处理数字、日期、百分比、对齐等需求时。

Python 提供了几种方式来格式化字符串:% 操作符、str.format() 方法和 f-string。下面我们将依次介绍这些方式。

1. 百分号 (%) 格式化

这是Python最早期的格式化字符串方法,类似于C语言的格式化。虽然这种方法在Python 3.x中已经不推荐使用,但它仍然广泛存在于旧代码中。

name = "Alice"
age = 30
print("My name is %s and I am %d years old." % (name, age))

输出:

My name is Alice and I am 30 years old.
  • %s 用于格式化字符串。
  • %d 用于格式化整数。
  • %f 用于格式化浮点数(默认保留6位小数)。

你还可以指定宽度和精度:

pi = 3.14159
print("Pi is approximately: %.2f" % pi)

输出:

Pi is approximately: 3.14
2. str.format() 方法

str.format() 是Python 2.7和3.0及以上版本中引入的格式化方法,它提供了比百分号格式化更多的灵活性和可读性。

name = "Alice"
age = 30
print("My name is {} and I am {} years old.".format(name, age))

输出:

My name is Alice and I am 30 years old.

你可以使用位置参数和关键字参数来指定输出的顺序:

print("My name is {0} and I am {1} years old. {0} loves Python.".format(name, age))

输出:

My name is Alice and I am 30 years old. Alice loves Python.
  • {0} 表示第一个参数(name)。
  • {1} 表示第二个参数(age)。

你还可以通过关键字参数指定格式:

print("My name is {name} and I am {age} years old.".format(name="Alice", age=30))

输出:

My name is Alice and I am 30 years old.

str.format() 还支持高级格式化功能,如指定宽度、填充字符、对齐方式等:

# 设置宽度和对齐方式
print("{:<10} | {:>10}".format("Name", "Age"))  # 左对齐和右对齐
print("{:^10} | {:^10}".format("Name", "Age"))  # 居中对齐

输出:

Name       |        AgeName    |    Age    
3. f-string(格式化字符串字面量)

f-string 是Python 3.6及以上版本新增的格式化字符串方法,它是最简洁、最强大、最易读的方式之一。通过在字符串前加 fF,可以将变量直接嵌入字符串中,并支持格式化表达式。

name = "Alice"
age = 30
print(f"My name is {name} and I am {age} years old.")

输出:

My name is Alice and I am 30 years old.

f-string 还允许在花括号内执行表达式和格式化操作。例如:

pi = 3.14159
print(f"Pi is approximately: {pi:.2f}")

输出:

Pi is approximately: 3.14

在这里,{pi:.2f} 格式化 pi 为保留两位小数的浮点数。

高级格式化选项
  • 数字格式化:通过:符号可以指定数字的显示格式。
    • :d:十进制整数
    • :f:浮点数
    • :.2f:浮动点数保留两位小数
    • :x:十六进制整数(小写字母)
    • :X:十六进制整数(大写字母)
num = 255
print(f"Decimal: {num}, Hex: {num:x}, Hex (Upper): {num:X}")

输出:

Decimal: 255, Hex: ff, Hex (Upper): FF
  • 填充与对齐:可以指定字段宽度并定义填充字符。默认情况下,数字右对齐,字符串左对齐:
name = "Alice"
age = 30
print(f"{name:<10} | {age:>5}")

输出:

Alice      |    30

在这里,< 表示左对齐,> 表示右对齐。你也可以使用 ^ 来进行居中对齐。

  • 精度控制:f-string 支持精度控制,特别适用于浮点数格式化:
pi = 3.141592653589793
print(f"Pi to 4 decimal places: {pi:.4f}")

输出:

Pi to 4 decimal places: 3.1416
  • 日期和时间格式化:可以使用 datetime 模块结合 f-string 格式化日期和时间:
from datetime import datetime
now = datetime.now()
print(f"Current date and time: {now:%Y-%m-%d %H:%M:%S}")

输出:

Current date and time: 2024-11-26 15:30:45
总结
  • 百分号格式化:最早期的格式化方法,虽然功能简单,但不再推荐用于新项目。
  • str.format():较为灵活,支持位置参数、关键字参数和格式控制,适用于Python 2和3。
  • f-string:最现代、最简洁的格式化方式,推荐用于Python 3.6及以上版本,支持嵌入表达式并具有高效的性能。
注释
单行注释

单行注释使用 # 符号,后面跟随注释的内容。# 后的内容直到行尾,都会被视为注释部分。

单行注释常用于对某行代码进行解释、标记或者临时禁用某行代码。也可以放在代码行的尾部,用于解释该行代码的作用。例如:

x = 10  # 变量x被赋值为10
多行注释

多行注释在Python中没有专门的语法形式,但可以使用三引号 '''""" 来包裹注释内容。这种方法通常用于对一段代码进行详细的注释,或者在函数、类、模块中添加文档字符串(docstring)。例如:

"""
这是一个多行注释
你可以在这里写任何内容,注释会跨越多行
比如,解释函数、类或代码段的功能
"""

这种形式的注释通常用于包含多行解释文本,方便描述复杂的算法、功能说明等内容。

文档字符串(Docstring)

文档字符串(docstring)是一种特殊的多行注释,通常用于描述模块、类、函数的功能。它们放置在模块、类、函数的第一行,并且通常被解释器用来生成文档。文档字符串使用三引号包围,并且通常保留在代码中作为文档生成工具的输入。

例如:

def add(a, b):"""这是一个加法函数:param a: 第一个加数:param b: 第二个加数:return: 返回两个数的和"""return a + b

此处的多行字符串是函数的文档字符串。它描述了函数的功能、参数和返回值,通常用于生成自动文档。

变量和命名规范

在Python中,变量是用来存储数据的命名空间。为确保代码清晰、易读且不与Python的内置关键字冲突,变量命名需要遵循一定的规则和最佳实践。

变量命名规则
  • 变量名只能由字母、数字和下划线 _ 组成,且不能以数字开头。
  • 区分大小写。
  • 不能使用Python关键字:Python的保留关键字(如 ifelseforimport 等)不能作为变量名。
常用的命名风格

在Python中,常用的命名风格有两种:驼峰命名法(Camel Case)和下划线命名法(Snake Case)。选择合适的命名风格,可以提高代码的可读性和一致性。

  • 驼峰命名法(Camel Case):每个单词的首字母大写,且没有空格或下划线,常用于类名和某些函数或变量名。
  • 下划线命名法(Snake Case):使用小写字母和下划线 _ 分隔单词,常用于函数名和变量名。
import 导入模块

Python的代码通常按功能组织成模块,每个文件就是一个模块。你可以通过 import 导入模块并使用其中的函数、类和变量。例如:

import math
print(math.sqrt(16))  # 输出 4.0

数据类型

Python的常见数据类型有:数字、字符串、布尔值、列表、元组和字典。了解这些数据类型及其基本操作对于编程至关重要。

数字类型

Python支持两种主要的数字类型:

  • 整数int):表示整数,例如:3-5
  • 浮点数float):表示小数,例如:3.14-0.5
字符串类型

字符串(str)是由字符组成的序列,支持多种操作,如查找、替换、拼接、切片等。例如:

string = "Hello, Python!"
print(string[0:5])  # 输出 'Hello'
布尔类型

布尔类型(bool)只有两个值:TrueFalse,常用于条件判断。

is_active = True
列表

列表(list)是一种有序且可变的数据结构,可以存储多个元素,支持索引、切片、添加、删除等操作。例如:

my_list = [1, 2, 3, 'a', 'b']
my_list.append(4)  # 添加元素
print(my_list[2:])  # 输出 [3, 'a', 'b', 4]
元组

元组(tuple)是有序但不可修改的集合,定义时使用小括号。例如:

my_tuple = (1, 2, 3)
print(my_tuple[1])  # 输出 2
字典

字典(dict)是由键值对组成的无序集合,常用于存储关联数据。例如:

my_dict = {'name': 'Alice', 'age': 25}
print(my_dict['name'])  # 输出 'Alice'

控制结构

条件语句 (if, else)

Python使用 ifelifelse 来进行条件判断:

age = 18
if age >= 18:print("成年人")
else:print("未成年人")
循环语句

Python有两种循环语句:

  • for 循环:用于遍历序列(如列表、字典)。
    for i in range(5):print(i)
    
  • while 循环:根据条件重复执行代码。
    count = 0
    while count < 5:print(count)count += 1
    
breakcontinue
  • break:用于终止循环。
  • continue:跳过当前循环的剩余部分,继续下一次循环。

函数与匿名函数

定义函数

函数是可重复使用的代码块,可以通过 def 关键字来定义函数:

def greet(name):return f"Hello, {name}!"
print(greet("Alice"))
匿名函数 (lambda)

lambda 用于创建匿名函数,只能包含一个表达式:

add = lambda x, y: x + y
print(add(2, 3))  # 输出 5

面向对象编程(OOP)

Python支持面向对象编程(OOP),它强调封装、继承和多态。

类和对象
  • :类是创建对象的蓝图,可以包含属性(数据)和方法(行为)。
  • 对象:对象是类的实例,通过类创建。
class Dog:def __init__(self, name, age):self.name = nameself.age = agedef bark(self):print(f"{self.name} says woof!")dog = Dog("Buddy", 3)
dog.bark()
封装、继承与多态
  • 封装:将数据和方法封装在类中,隐藏实现细节。
  • 继承:子类可以继承父类的属性和方法。
  • 多态:同一方法在不同对象中表现出不同的行为。
魔术方法
  • __init__():构造方法,用于初始化对象。
  • __str__():用于返回对象的字符串表示。

文件操作

Python提供了强大的文件操作功能,使用 open() 方法可以打开文件进行读写操作。

打开文件

常见的文件模式包括:

  • 'r':只读模式
  • 'w':写入模式(会覆盖文件内容)
  • 'a':追加模式
  • 'rb''wb':以二进制方式读写文件
with open('example.txt', 'r') as file:content = file.read()print(content)
写入文件

使用 file.write() 方法将数据写入文件:

with open('example.txt', 'w') as file:file.write("Hello, World!")
上下文管理器

使用 with 语句可以确保文件在使用完后正确关闭,避免文件句柄泄漏。

异常处理

Python的异常处理通过 try...except 语句来捕获和处理错误。这样可以避免程序在遇到错误时崩溃。

try:x = 10 / 0
except ZeroDivisionError:print("不能除以零")

字符串操作

常见字符串方法
  • 切片:提取子字符串

    string = "Python"
    print(string[:3])  # 输出 'Pyt'
    
  • 查找:查找子字符串的位置

    print(string.find('Py'))  # 输出 0
    
  • 替换:替换字符串中的部分内容

    print(string.replace('P', 'J'))  # 输出 'Jython'
    
  • 拆分:将字符串拆分为多个子字符串

    print(string.split('t'))  # 输出 ['Py', 'hon']
    

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

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

相关文章

go语言逆向-基础basic

文章目录 go 编译命令 ldflags -w -s的作用和问题使用 file 命令查看文件类型 go 语言逆向参考go ID版本GOROOT和GOPATHGOROOTGOPATHGOROOT和GOPATH的关系示例 go build和 go modpclntab &#xff08;Program Counter Line Table 程序计数器行数映射表&#xff09;Moduledata程…

D2761 适合在个人电脑、便携式音响等系统中作音频限幅用。

概述&#xff1a; D2761是为保护扬声器所设计的音频限幅器&#xff0c;其限幅值可通过外接电阻来调节&#xff0c;适合在个人电脑、便携式音响等系统中作音频限幅用。D2761采用SSOP10、MSOP10、TSSOP14的封装形式封装。 主要特点&#xff1a;  工作电压范围宽&#xff1a;2.7…

【Linux系统】—— 基本指令(四)

【Linux系统】—— 基本指令&#xff08;三&#xff09; 1「find」指令2 「grep」指令2.1 初识「grep」指令2.2 「grep」指令 选项 3 打包压缩基本知识4 「zip / unzip」指令5「tar」命令6 文件互传6.1 Linux 与 Windows 互传6.1.1 Linux向Windows传输6.1.2 Windows向Linux传输…

WordCloud去掉停用词(fit_words+generate)的2种用法

-------------词云图集合------------- WordCloud去掉停用词&#xff08;fit_wordsgenerate&#xff09;的2种用法 通过词频来绘制词云图&#xff08;jiebaWordCloud&#xff09; Python教程95&#xff1a;去掉停用词词频统计jieba.tokenize示例用法 将进酒—李白process_t…

洛谷刷题日记12||图的遍历

反向建边 dfs 按题目来每次考虑每个点可以到达点编号最大的点&#xff0c;不如考虑较大的点可以反向到达哪些点 循环从N到1&#xff0c;则每个点i能访问到的结点的A值都是i 每个点访问一次&#xff0c;这个A值就是最优的&#xff0c;因为之后如果再访问到这个结点那么答案肯…

替代Postman ,17.3K star!

现在&#xff0c;许多人都朝着全栈工程师的方向发展&#xff0c;API 接口的编写和调试已成为许多开发人员必备的技能之一。 工欲善其事&#xff0c;必先利其器。拥有一款优秀的 API 工具对于任何工程师来说都是极为重要的&#xff0c;它能够帮助我们高效地完成各种开发任务。 …

java:拆箱和装箱,缓存池概念简单介绍

1.基本数据类型及其包装类&#xff1a; 举例子&#xff1a; Integer i 10; //装箱int n i; //拆箱 概念&#xff1a; 装箱就是自动将基本数据类型转换为包装器类型&#xff1b; 拆箱就是自动将包装器类型转换为基本数据类型&#xff1b; public class Main {public s…

Node.js的url模块与querystring模块

新书速览|Vue.jsNode.js全栈开发实战-CSDN博客 《Vue.jsNode.js全栈开发实战&#xff08;第2版&#xff09;&#xff08;Web前端技术丛书&#xff09;》(王金柱)【摘要 书评 试读】- 京东图书 (jd.com) 4.3.1 http模块——创建HTTP服务器、客户端 要使用http模块&#xff0…

【Reinforcement Learning】强化学习下的多级反馈队列(MFQ)算法

&#x1f4e2;本篇文章是博主强化学习&#xff08;RL&#xff09;领域学习时&#xff0c;用于个人学习、研究或者欣赏使用&#xff0c;并基于博主对相关等领域的一些理解而记录的学习摘录和笔记&#xff0c;若有不当和侵权之处&#xff0c;指出后将会立即改正&#xff0c;还望谅…

【linux】服务器加装硬盘后如何将其设置为独立硬盘使用

【linux】服务器加装硬盘后如何将其设置为独立硬盘使用 问题描述&#xff1a;本服务器原本使用了两个硬盘作为存储硬盘&#xff0c;同时对这两个硬盘设置了raid1阵列。现在内存不足要进行加载硬盘&#xff0c;新加载的硬盘不设置为raid1&#xff0c;而是将新加装的两个硬盘作为…

亚信安全与飞书达成深度合作

近日&#xff0c;亚信安全联合飞书举办的“走近先进”系列活动正式走进亚信。活动以“安全护航信息化 共筑数字未来路”为主题&#xff0c;吸引了众多数字化转型前沿企业的近百位领导参会。作为“走近先进”系列的第二场活动&#xff0c;本场活动更加深入挖掘了数字化转型的基础…

TMS FNC UI Pack 5.4.0 for Delphi 12

TMS FNC UI Pack是适用于 Delphi 和 C Builder 的多功能 UI 控件的综合集合&#xff0c;提供跨 VCL、FMX、LCL 和 TMS WEB Core 等平台的强大功能。这个统一的组件集包括基本工具&#xff0c;如网格、规划器、树视图、功能区和丰富的编辑器&#xff0c;确保兼容性和简化的开发。…

Transformer详解及衍生模型GPT|T5|LLaMa

简介 Transformer 是一种革命性的神经网络架构&#xff0c;首次出现在2017年的论文《Attention Is All You Need》中&#xff0c;由Google的研究团队提出。与传统的RNN和LSTM模型不同&#xff0c;Transformer完全依赖于自注意力&#xff08;Self-Attention&#xff09;机制来捕…

Git(一)基本使用

目录 一、使用git -v 查看安装git版本 二、使用mkdir 创建一个文件&#xff0c;并使用 git init 在该目录下创建一个本地仓库&#xff0c; 三、通过git clone命令接入线上仓库 四、使用git status查看仓库状态信息 五、利用echo写入一个文件 并使用cat进行查看 【Linux】e…

vue3 uniapp 扫普通链接或二维码打开小程序并获取携带参数

vue3 uniapp 扫普通链接或二维码打开小程序并获取携带参数 微信公众平台添加配置 微信公众平台 > 开发管理 > 开发设置 > 扫普通链接二维码打开小程序 配置链接规则需要下载校验文档给后端存入服务器中&#xff0c;保存配置的时候会校验一次&#xff0c;确定当前的配…

Vercel 设置自动部署 GitHub 项目

Vercel 设置自动部署 GitHub 项目 问题背景 最近 Vercel 调整了其部署政策&#xff0c;免费版用户无法继续使用自动部署功能&#xff0c;除非升级到 Pro 计划。但是&#xff0c;我们可以通过配置 Deploy Hooks 来实现同样的自动部署效果。 解决方案 通过设置 Vercel 的 Dep…

商业物联网:拥抱生产力的未来

在现代商业格局中&#xff0c;数据占据至高无上的地位。物联网&#xff08;IoT&#xff09;站在这场数字革命的前沿&#xff0c;将以往模糊不清的不确定因素转变为可衡量、可付诸行动的深刻见解。物联网技术为日常物品配备传感器与连接功能&#xff0c;使其能够实时收集并传输数…

金融租赁系统助力企业升级与风险管理的新篇章

内容概要 在当今的商业环境中&#xff0c;“金融租赁系统”可谓是企业成功的秘密武器。简单来说&#xff0c;这个系统就像一位聪明的财务顾问&#xff0c;帮助企业在资金和资源的运用上达到最优化。从设备采购到项目融资&#xff0c;它提供了一种灵活的方式&#xff0c;让企业…

java版CRM客户关系管理系统crm管理系统+客户+营销管理CRM平台

项目名称&#xff1a;CRM客户关系管理系统 功能模块及描述&#xff1a; 一、待办事项 今日需联系客户&#xff1a;显示当日需跟进的客户列表&#xff0c;支持查询和筛选。 分配给我的线索&#xff1a;管理分配给用户的线索&#xff0c;包括线索列表和查询功能。 分配给我的客…

【K8S问题系列 |18 】如何解决 imagePullSecrets配置正确,但docker pull仍然失败问题

如果 imagePullSecrets 配置正确&#xff0c;但在执行 docker pull 命令时仍然失败&#xff0c;可能存在以下几种原因。以下是详细的排查步骤和解决方案。 1. 检查 Docker 登录凭证 确保你使用的是与 imagePullSecrets 中相同的凭证进行 Docker 登录&#xff1a; 1.1 直接登录…