当前位置: 首页 > news >正文

Python学习篇:Python基础知识(三)

目录

1 Python保留字

2 注释

 3 行与缩进

​编辑4 多行语句

5 输入和输出

6 变量

7 数据类型

8 类型转换

9 表达式

10 运算符


1 Python保留字

Python保留字(也称为关键字)是Python编程语言中预定义的、具有特殊含义的标识符。这些保留字不能用作变量名、函数名或其他标识符的名称。以下是Python 3中的保留字列表:

['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

 请注意,保留字列表可能会随着Python版本的更新而发生变化,因此Python的标准库提供了一个keyword模块,可以输出当前版本的所有关键字,运行下列代码即可。

# 导入Python的keyword模块
import keyword # keyword.kwlist是一个列表,包含了所有的Python保留字,print函数会输出这个列表的内容到控制台
print(keyword.kwlist) 

2 注释

单行注释以 # 开头,示例如下:

# 第一个注释
print("Hello Word!!!")  # 第二个注释

多行注释可以用多个 # 号,一行一行进行注释,也可以用 ''' 和 """,示例如下: 

ps:注释用到''' 和 """是英文字符!!!

# 第一个注释
# 第二个注释'''
第三个注释
第四个注释
'''"""
第五个注释
第六个注释
"""
print("Hello Word!!!")

执行以上代码,输出结果均为:Hello Word!!!(注释不影响)

ps:注释对代码执行没有任何直接影响。注释是代码中的解释性文本,用于为代码提供额外的信息,帮助开发者和其他读者理解代码的功能、逻辑和目的。注释不会被Python解释器或编译器执行,它们仅作为代码的一部分存在,用于提高代码的可读性和可维护性!!!

 3 行与缩进

在Python中,缩进是非常重要的,因为它用于定义代码块的结构。Python没有像其他语言(如C、Java等)中的大括号 { } 来明确标记代码块的开始和结束,而是依赖于缩进来表示代码块,示例如下:

if True:# 这个条件语句下的代码块应该缩进print("Condition is True")
if False:# 这个条件语句下的代码块应该缩进print("Condition is False")

以下代码最后一行语句缩进数的空格数不一致,会导致运行错误,执行后会出现类似以下错误:

IndentationError: unindent does not match any outer indentation level


4 多行语句

在Python中,你可以在行的末尾使用反斜杠 (\) 来指示语句将在下一行继续。但是,这种方式并不常用,因为它可能会降低代码的可读性。它主要用于那些Python解释器无法自动识别为跨越多行的语句,比如字符串或长表达式,示例如下:

s = "这是一个很长的字符串,\
它跨越了多行"

当你在括号(圆括号 (), 方括号 [], 花括号 {})中编写代码时,Python会自动将多行视为一个单一的语句,而无需使用反斜杠。这是处理长列表、元组、字典和函数调用时常用的方法,示例如下:

my_list = ["apple","banana","cherry",
]my_func(arg1,arg2,arg3,
)

5 输入和输出

输出函数print(),在前面我们已经用过来输出Hello World,语法就是:

print(要输出的内容)

输入函数是 input(),功能是接收用户输入的内容,语法是:

input(输出的内容)

举例:接收用户输入的姓名,随之打印欢迎用户

n = input("请输入姓名:")	#把输入内容赋给n,用 n 接收一下
print("欢迎" + n + "!")	#打印n

上面章节也讲到过,在Python里,“#” 表示注释,“#”后面的东西不会被执行。代码运行之后首先出现了“请输入姓名:”,然后随意输入,比如输入Michael Lee,执行结果:

成功接收用户输入的内容并打印出来。

6 变量

变量可以理解为一个名字,在Python中,变量是用于存储数据值的标识符(名称)。变量允许我们存储和操作数据,而不必每次都直接引用数据本身。Python是一种动态类型的语言,这意味着变量的类型在运行时可以自动改变,取决于我们赋给它的值。

变量命名规则

  • 变量名必须是一个有效的标识符:这意味着它必须以字母(a-z, A-Z)或下划线(_)开头,后面可以跟任意数量的字母、数字或下划线。
  • 变量名不能是Python的关键字(即Python保留字):例如,class, for, while, if等。
  • 变量名应该具有描述性:这样代码的可读性会更好。
  • 变量名区分大小写:例如,myVariable和myvariable是两个不同的变量。
  • 避免使用内置函数或类的名称作为变量名:这可能会导致意外的行为或错误。

7 数据类型

  • 整型(int):正整数、负整数和零,例如:123, -456, 0。
  • 浮点型(float):带有小数点的数字,例如:1.23, -0.456。
  • 复数(complex):由实部和虚部组成的数,表示为a + bj,其中a和b是浮点数,j(或J)是虚数单位。例如:3+4j。
  • 字符串(str):一系列字符组成的文本,用单引号、双引号或三引号括起来。例如:'hello',"world",'''Hello, world!'''。
  • 布尔值(bool):只有两个值,True和False,用于表示逻辑条件。
  • 列表(list):有序的元素集合,用方括号[]括起来,元素之间用逗号分隔。列表中的元素可以是任何类型,并且同一个列表中可以有不同类型的元素。例如:[1, 2, 3, 'a', 'b']。
  • 元组(tuple):与列表类似,但是元组是不可变的,即创建后不能修改其元素。元组用圆括号()括起来。例如:(1, 2, 3)。
  • 字典(dict):无序的键值对集合,用花括号{}括起来,每个键值对用冒号:分隔,键值对之间用逗号,分隔。键通常是不可变的类型(如整数、浮点数、字符串或元组),而值可以是任何类型。例如:{'name': 'Alice', 'age': 30}。
  • 集合(set):无序且不包含重复元素的集合,用花括号{}或set()函数表示。集合用于去重或检查某个元素是否存在于某个集合中。例如:{1, 2, 3}。
  • NoneType:None是NoneType类型的唯一值,表示空值或没有值。它经常用于表示变量没有设置值或函数没有返回值。

类型转换

在Python中,数据类型转换是很常见的操作。Python提供了多种内置函数,用于在数据类型之间进行转换。以下是一些常见的Python数据类型转换的示例:

整数(int)与浮点数(float)之间的转换:

  • 使用 int() 函数将浮点数转换为整数(ps:注意这会导致小数部分被丢弃)。
num_float = 3.14
num_int = int(num_float)  # 结果为 3
  •  使用 float() 函数将整数或字符串转换为浮点数。
num_str = "123"
num_float = float(num_str)  # 结果为 123.0

字符串(str)与整数/浮点数之间的转换

  •  如前所述,使用 int() 和 float() 函数可以将字符串转换为整数或浮点数,但前提是字符串表示的是一个有效的数字。
num_str = "123"
num_int = int(num_str)  # 结果为 123num_str_float = "3.14"
num_float = float(num_str_float)  # 结果为 3.14

 列表(list)与元组(tuple)之间的转换

  • 使用 list() 函数可以将元组转换为列表。
my_tuple = (1, 2, 3)
my_list = list(my_tuple)  # 结果为 [1, 2, 3]
  •  使用 tuple() 函数可以将列表转换为元组。
my_list = [1, 2, 3]
my_tuple = tuple(my_list)  # 结果为 (1, 2, 3)

 其他类型转换:

  •  使用 bool() 函数可以将其他数据类型转换为布尔值(True 或 False)。
# 整数转换为布尔值
num_int = 0
print(bool(num_int))  # False,因为0被视为Falsenum_int = 1
print(bool(num_int))  # True,因为非0整数被视为True# 字符串转换为布尔值
empty_str = ""
print(bool(empty_str))  # False,因为空字符串被视为Falsenon_empty_str = "Hello"
print(bool(non_empty_str))  # True,因为非空字符串被视为True# 列表转换为布尔值
empty_list = []
print(bool(empty_list))  # False,因为空列表被视为Falsenon_empty_list = [1, 2, 3]
print(bool(non_empty_list))  # True,因为非空列表被视为True# 字典转换为布尔值
empty_dict = {}
print(bool(empty_dict))  # False,因为空字典被视为Falsenon_empty_dict = {"key": "value"}
print(bool(non_empty_dict))  # True,因为非空字典被视为True
  • 使用 set() 函数可以将列表或元组转换为集合(set)。
# 列表转换为集合
list_to_set = [1, 2, 2, 3, 4]
set_from_list = set(list_to_set)
print(set_from_list)  # {1, 2, 3, 4},集合中的元素唯一# 元组转换为集合
tuple_to_set = (1, 2, 3, 3, 4)
set_from_tuple = set(tuple_to_set)
print(set_from_tuple)  # {1, 2, 3, 4},集合中的元素唯一
  • 使用 dict() 函数或花括号 {} 可以将键值对(通常是元组列表或另一个字典)转换为字典。
# 使用dict()函数
dict_from_tuple_list = dict([(1, 'one'), (2, 'two'), (3, 'three')])
print(dict_from_tuple_list)  # {1: 'one', 2: 'two', 3: 'three'}# 使用花括号{}
dict_from_pairs = {1: 'one', 2: 'two', 3: 'three'}
print(dict_from_pairs)  # {1: 'one', 2: 'two', 3: 'three'}# 从另一个字典创建字典
another_dict = {'a': 1, 'b': 2}
dict_from_another_dict = dict(another_dict)
print(dict_from_another_dict)  # {'a': 1, 'b': 2}
  • 使用 complex() 函数可以将两个数字转换为复数。
# 实数部分和虚数部分
real_part = 3
imag_part = 4# 转换为复数
complex_num = complex(real_part, imag_part)
print(complex_num)  # (3+4j)# 只有一个参数时,它被视为复数的实数部分,虚数部分为0
complex_num_only_real = complex(real_part)
print(complex_num_only_real)  # (3+0j)

这些示例展示了如何使用Python的内置函数来执行不同类型之间的转换。 

9 表达式

在Python中,表达式是由运算符和操作数组成的代码片段,它会被Python解释器计算并产生一个值。表达式可以很简单,也可以很复杂,它们可以包含变量、常量、函数调用、运算符等。

以下是一些Python表达式的例子:

  • 简单的算术表达式:
2 + 3  # 结果为 5
5 - 2  # 结果为 3
10 * 2  # 结果为 20
10 / 2  # 结果为 5.0(在Python 3中,整数除法返回浮点数)
10 // 3  # 结果为 3(整数除法,只取整数部分)
10 % 3  # 结果为 1(取余数)
  • 字符串表达式:
"Hello, " + "World!"  # 结果为 "Hello, World!"
"Python is " + str(3.14) + "!"  # 结果为 "Python is 3.14!"
  • 逻辑表达式:
True and False  # 结果为 False
True or False   # 结果为 True
not True        # 结果为 False
  • 比较表达式:
5 > 3  # 结果为 True
10 < 5  # 结果为 False
2 == 2  # 结果为 True
3 != 2  # 结果为 True

10 运算符

Python 中的运算符用于执行各种算术运算、比较运算、逻辑运算、位运算、赋值运算以及身份和成员关系运算。以下是 Python 比较常见基础的运算符及其用法:

1. 算术运算符

# 算术运算符
a = 5
b = 3
print(a + b)       # +:加法                  结果:8 
print(a - b)       # -:减法                  结果:2
print(a * b)       # *:乘法                  结果:15
print(a / b)       # /:除法(结果总是浮点数) 结果:1.6666666666666667
print(a // b)      # //:整除(取整数部分)    结果:1
print(a % b)       # %:取模(求余数)         结果:2
print(a ** b)      # **:乘方(幂运算)        结果:125

2. 比较运算符

# 比较运算符
a = 5
b = 3
print(a == b)       # ==:等于      结果:False
print(a != b)       # !=:不等于    结果:True
print(a > b)        # >:大于       结果:True
print(a < b)        # <:小于       结果:False
print(a >= b)       # >=:大于等于  结果:True
print(a <= b)       # <=:小于等于  结果:False

3. 逻辑运算符

# 逻辑运算符
print(True and False)  # and:逻辑与 结果:False
print(True or False)   # or:逻辑或  结果:True
print(not True)        # not:逻辑非 结果:False

以上即是博主认为Python比较基础的一下知识,在开始编写Python前务必掌握,如有遗留欢迎补充,抱拳 !!!

ps:博主也是个Python萌新,后续会持续更新Python学习内容,如感兴趣跟着博主从零开始学习关注点一下吧~

有什么问题都可以评论区留言,看见都会回复的!!!

如果你觉得本篇文章对你有所帮助的,多多支持!!!

点赞收藏评论,抱拳了!!

相关文章:

Python学习篇:Python基础知识(三)

目录 1 Python保留字 2 注释 3 行与缩进 ​编辑4 多行语句 5 输入和输出 6 变量 7 数据类型 8 类型转换 9 表达式 10 运算符 1 Python保留字 Python保留字&#xff08;也称为关键字&#xff09;是Python编程语言中预定义的、具有特殊含义的标识符。这些保留字不能用作…...

C++字体库开发之字体回退三

代码片段 class FontCoverage { public: using SP std::shared_ptr<FontCoverage>; virtual ~FontCoverage() default; virtual void set(int index, FontTypes::CoverageLevel level) 0; virtual FontTypes::Coverag…...

python vtk lod 设置

在Python中使用VTK库设置Level of Detail (LOD)可以通过vtkLODProp3D类来实现。这个类允许你为一个模型指定不同级别的细节表示&#xff0c;从而在渲染时根据模型与摄像机的距离自动切换到更适合的表示。 以下是一个简单的例子&#xff0c;展示如何使用vtkLODProp3D来设置LOD&…...

Rhino 犀牛三维建模工具下载安装,Rhino 适用于机械设计广泛领域

Rhinoceros&#xff0c;这款软件小巧而强大&#xff0c;无论是机械设计、科学工业还是三维动画等多元化领域&#xff0c;它都能展现出其惊人的建模能力。 Rhinoceros所包含的NURBS建模功能&#xff0c;堪称业界翘楚。NURBS&#xff0c;即非均匀有理B样条&#xff0c;是计算机图…...

Unleashing Text-to-Image Diffusion Models for Visual Perception

mmcv的环境不好满足&#xff0c;不建议复现...

[2024]docker-compose实战 (1)前言

前言 本文用来记录使用docker-compose来实战搭建一个多项目的测试环境. 环境中包含nodejs, php, html, redis, MongoDB, mysql. 在本次部署流程中, 尽量保证原镜像的"干净简洁", 尽量不会往镜像中加入各种软件和插件, 所有的配置尽可能的在宿主机映射进去. 项目…...

并发编程面试题3

一、CountDownLatch,Semaphore的高频问题: 1.1 CountDownLatch是啥?有啥用?底层咋实现的? CountDownLatch 本质上是一个计数器,用于协调多个线程之间的同步。主要应用场景是在多线程并行处理业务时,需要等待其他线程处理完再进行后续操作,例如合并结果或响应用户请求…...

Movable antenna 早期研究

原英文论文名字Historical Review of Fluid Antenna and Movable Antenna 最近&#xff0c;无线通信研究界对“流体天线”和“可移动天线”两种新兴天线技术的发展引起了极大的关注&#xff0c;这两种技术因其前所未有的灵活性和可重构性而极大地提高了无线应用中的系统性能。…...

Polkadot 安全机制揭秘:保障多链生态的互操作性与安全性

作者&#xff1a;Filippo Franchini&#xff0c;Web3 Foundation 原文&#xff1a;https://x.com/filippoweb3/status/1806318265536242146 编译&#xff1a;OneBlock Polkadot 是一个创新的多链区块链平台&#xff0c;旨在实现不同区块链之间的互操作性和共享安全性。本文将详…...

python将多个文件夹里面的文件拷贝到一个文件夹中

网上可以搜到很多方式&#xff0c;有的好使&#xff0c;有的不好使&#xff0c;亲测如下脚本可用&#xff0c;并可达到我想要的效果&#xff0c;只将多个文件夹里的文件拷贝到一个文件夹中&#xff0c;不拷贝文件夹本身&#xff0c;如果需要文件夹也拷贝打开注释行即可 import…...

docker私有仓库harbor部署

docker私有仓库harbor部署 概述 Docker 官方镜像源被中国大陆政府封锁&#xff0c;导致无法在中国大陆的计算机上直接使用 Docker 拉取镜像&#xff0c;导致使用者一下子手足无措了&#xff0c;的确一开始会有很大的影响&#xff0c;为了应对这种影响我们可以自己构建私有仓库&…...

如何在Java中实现函数式编程

如何在Java中实现函数式编程 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 在Java中&#xff0c;函数式编程是一种编程范式&#xff0c;它将计算视为数学函数…...

二叉树与堆相关的时间复杂度问题

目录 满二叉树与完全二叉树高度h和树中节点个数N的关系 向上调整算法&#xff1a; 介绍&#xff1a; 复杂度推导&#xff1a; 向下调整算法&#xff1a; 介绍&#xff1a; 复杂度推导&#xff1a; 向上调整建堆&#xff1a; 介绍&#xff1a; 复杂度推导&#xff1a;…...

goLang小案例-获取从控制台输入的信息

goLang小案例-获取从控制台输入的信息 1. 案例代码展示 package mainimport ("bufio""fmt""log""os" )var pl fmt.Printlnfunc main() {//控制台输出欢迎提示pl("Hello Go")fmt.Print("what is your name? ")…...

1-5题查询 - 高频 SQL 50 题基础版

目录 1. 相关知识点2. 例题2.1.可回收且低脂的产品2.2.寻找用户推荐人2.3.大的国家2.4. 文章浏览 I2.5. 无效的推文 1. 相关知识点 sql判断&#xff0c;不包含null&#xff0c;判断不出来distinct是通过查询的结果来去除重复记录ASC升序计算字符长度 CHAR_LENGTH() 或 LENGTH(…...

Modbus协议转Profinet协议网关模块连智能仪表与PLC通讯

一、现场需求&#xff1a;PLC作为控制器&#xff0c;仪表设备做为执行设备&#xff0c;执行设备能够实时响应PLC传来的指令&#xff0c;并且向PLC回馈数据&#xff0c;从而达到PLC对仪表设备进行控制和监测&#xff0c;实现对生产过程的精准控制。 二、解决方案&#xff1a;通过…...

新手必学:TikTok视频标签的使用方法

想让你的TikTok视频火起来&#xff0c;就得用对标签。标签能帮你的作品被更多人看到&#xff0c;也更有利于推广&#xff0c;可以为品牌增加曝光度、吸引更多观众、提高转化率和借势热门话题。那么应该如何选择标签并使用标签呢&#xff0c;看完这篇分享你或许会有所启发&#…...

AI是在帮助开发者还是取代他们

近年来&#xff0c;AI工具在软件开发和数据分析领域的应用日益广泛&#xff0c;它们对开发者的日常工作产生了深远的影响。AI工具通过自动化处理大量数据、优化代码质量、提高测试效率等方式&#xff0c;极大地提升了开发者的工作效率。然而&#xff0c;这同时也对开发者的传统…...

【后端面试题】【中间件】【NoSQL】MongoDB查询过程、ESR规则、覆盖索引的优化

任何中间件的面试说到底都是以高可用、高性能和高并发为主&#xff0c;而高性能和高并发基本是同时存在的。 性能优化一直被看作一个高级面试点&#xff0c;因为只有对原理了解得很透彻的人&#xff0c;在实践中才能找准性能优化的关键点&#xff0c;从而通过各种优化手段解决性…...

使用c++函数式编程实现Qt信号槽机制

问题背景 在下面的代码中&#xff0c;Input输入器 输入数据&#xff0c;希望A和B 接收数据。但使用的赋值&#xff0c;导致in.a和a只是拷贝数据&#xff0c;而不是同一个对象&#xff0c;使得数据不同步。 #include <iostream> struct A {int age 32; }; struct B {int …...

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...

[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解

突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 ​安全措施依赖问题​ GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...

逻辑回归:给不确定性划界的分类大师

想象你是一名医生。面对患者的检查报告&#xff08;肿瘤大小、血液指标&#xff09;&#xff0c;你需要做出一个**决定性判断**&#xff1a;恶性还是良性&#xff1f;这种“非黑即白”的抉择&#xff0c;正是**逻辑回归&#xff08;Logistic Regression&#xff09;** 的战场&a…...

Oracle查询表空间大小

1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...

什么是库存周转?如何用进销存系统提高库存周转率?

你可能听说过这样一句话&#xff1a; “利润不是赚出来的&#xff0c;是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业&#xff0c;很多企业看着销售不错&#xff0c;账上却没钱、利润也不见了&#xff0c;一翻库存才发现&#xff1a; 一堆卖不动的旧货…...

Neo4j 集群管理:原理、技术与最佳实践深度解析

Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...

pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)

目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关&#xff0…...

mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包

文章目录 现象&#xff1a;mysql已经安装&#xff0c;但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时&#xff0c;可能是因为以下几个原因&#xff1a;1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...

在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?

uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件&#xff0c;用于在原生应用中加载 HTML 页面&#xff1a; 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...

在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案

这个问题我看其他博主也写了&#xff0c;要么要会员、要么写的乱七八糟。这里我整理一下&#xff0c;把问题说清楚并且给出代码&#xff0c;拿去用就行&#xff0c;照着葫芦画瓢。 问题 在继承QWebEngineView后&#xff0c;重写mousePressEvent或event函数无法捕获鼠标按下事…...