Python青少年简明教程:数据类型和操作符

2024-08-21 00:44

本文主要是介绍Python青少年简明教程:数据类型和操作符,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Python青少年简明教程:数据类型和操作符

编程语言中数据类型是用来分类和描述不同种类的数据的方式。每种数据类型定义了数据的性质、可以对其执行的操作,以及它在内存中的存储方式。

字面量(Literal)是指在程序中直接表示固定值的表示法——是源代码中直接出现的数据值。如:

整数字面量:如 42, -17, 1000000

浮点数字面量:如 3.14, -0.01, 2.5e-4 (科学记数法)

字符串字面量:'Hello'、"World"

数据类型简介

Python 中的常用的6种基本数据类型包括数字(Numbers)、字符串(Strings)、列表(Lists)、元组(Tuples)、字典(Dictionaries)和集合(Sets)。除此之外,还有一些。它们都是内置的类实例,因此可以被视为对象。

☆数值类型:

数值类型包括整数(int)、浮点数(float)、复数(complex)。

a) 整数 (int):Python 的整数类型没有长度限制,只受内存限制。如 -5,0, 100。

b) 浮点数 (float):如 3.14, -0.001, 2.0

c) 复数 (complex): 形式为 a + bj,其中 a 和 b 是浮点数,j 表示虚数单位。如 3+4j, 2-1j。

☆字符串 (strings,str):

字符串用于表示文本数据,可以包含字母、数字、符号以及其他字符,需要用单引号、双引号或三引号(半角引号)包起来。如:

单引号:

'Hello, world!'

双引号:

"Hello, world!"

三引号(用于多行字符串):

"""This is a
multiline string.""

'''This is another
multiline string.'''

☆布尔类型 (bool):

表示真或假的值,只有两个取值:True 和 False。注意写法。布尔值在条件判断和逻辑运算中非常有用。

☆列表 (list):

有序可变序列,可以包含不同类型的元素。用方括号表示,元素之间用逗号分隔。如 :

[1, 2, 3]

['a', 'b', 'c']

[1, 3.14, "Hello"]

可以通过索引访问和修改。

列表是可变的序列类型,用于存储一系列元素,这些元素可以是不同类型的数据。

☆元组 (tuple):

有序不可变序列,可以包含不同类型的元素。用圆括号表示,元素之间用逗号分隔。如:

(1, 2, 3)

('x', 'y', 'z')

(2, "World", True)

元组与列表类似,但它是不可变的。一旦创建,就不能修改其元素——可以用于保护数据的完整性。

☆字典 (dict):

键值对集合,用花括号表示。每个键值对用冒号分隔,键值对之间用逗号分隔;字典中的键必须是唯一的,而值可以是任意的数据类型。如{'name': 'John', 'age': 30}

支持通过键来访问对应的值,可以进行添加、删除和修改键值对等操作。

字典是可变的容器模型,用于存储键值对(key-value pairs)

☆集合 (set):

无序不重复元素集,用花括号表示,元素之间用逗号分隔。如 {1, 2, 3}, {'apple', 'banana', 'cherry'}

集合(set)具有以下特点:

无序:集合中的元素没有固定的顺序,因此不能通过索引访问元素。

不包含重复元素:集合会自动去除重复的元素,确保每个元素在集合中都是唯一的。

不可变元素:集合的元素必须是不可变(可哈希hashable)类型,比如数字、字符串和元组。可变类型如列表和字典不能作为集合的元素。

此外还有

1、None 类型:

None 类型表示空值或缺少值。它只有一个取值,即None。常用于表示变量没有返回值或函数没有返回值的情况。

要注意,None 与空字符串 ""、空列表 []、空字典 {} 在逻辑上是不同的。

2、range类型

是一个不可变的序列类型。

常用于表示一个不可变的数字序列,通常用在循环中。

例如:range(5) 代表序列 [0, 1, 2, 3, 4]。

3、字节字符串(bytes):

是一个不可变的序列,包含范围为 0 <= x < 256 的整数。

类似于字符串,但专门用于处理二进制数据。

4.字节数组(bytearray):

是一个可变的序列,包含范围为 0 <= x < 256 的整数。

可以像处理列表一样处理字节数组,但其元素限制为 0-255 的整数,试图赋值超出这个范围的整数会引发 ValueError。

bytearray与 bytes 的对比,bytes 是不可变的字节序列,而 bytearray 是其可变版本。

5.冻结集合(frozenset):

是不可变集合的一种变体。

一旦创建,就不能添加或删除元素。

可以用作字典的键或其他集合的元素。

这些都是 Python 的内置数据类型,可以使用内置函数type() 来检查任何对象的数据类型。type() 是 Python 中的一个内置函数,用于返回一个对象的类型。例如:

print(type(5))      # <class 'int'>

print(type("hello"))   # <class 'str'>

print(type([1, 2, 3]))   # <class 'list'>

Python的数据类型小结

1.序列类型包括:

字符串(str):不可变序列,用于表示文本。

列表(list):可变序列,可以包含不同类型的元素。

元组(tuple):不可变序列,通常用于存储多个元素的组合。

range对象:不可变序列,表示一个数字范围。

【注:序列(Sequence)是指一种数据结构,用于表示一系列有序的元素,每个元素都分配了一个位置索引,通过这些索引可以访问序列中的元素。】

2.可变类型(Mutable)和不可变类型(Immutable)

可变类型是指可以在创建后改变其内容的类型。包括:

列表(list):可以增删改元素。

字典(dict):包含键值对,可以修改、添加和删除键值对。

集合(set):可以增删元素,但集合本身的元素必须是不可变的。

字节数组(bytearray):可以修改字节序列。

用户自定义的类(通常情况下)。

不可变类型是指创建后其内容不能被更改的类型。包括:

整数(int)

浮点数(float)

字符串(str)

元组(tuple)

布尔值(bool):True 和 False。

复数(complex):用于表示复数。

字节字符串(bytes):不可变的字节序列。

冻结集合(frozenset):不可变的集合。

None(NoneType)

【可变(Mutable)与不可变(Immutable):这决定了数据类型的实例在创建后是否可以更改其内容。可变类型的内容可以更改,而不可变类型的内容一旦创建就不能更改。】

Python的这些数据类型,实际上都是内置的类实例,因此可以被视为对象(具有自己的方法和属性)。

关于数据类型更多情况可见:Python的数据类型https://blog.csdn.net/cnds123/article/details/108124459

数据类型转换

在Python中,数据类型转换是指将一种数据类型转换为另一种数据类型。Python提供了多种内置函数来实现这些转换。

存在隐式转换和显示转换两种类型的数据类型转换。隐式转换是由Python自动进行的,而显示转换是通过程序员显式调用转换函数来完成的。

隐式转换

隐式转换,也称为自动转换,是指Python在进行运算时会自动将一种数据类型转换为另一种类型,以便于运算。例如:

a = 5         # 整数

b = 2.0       # 浮点数

c = a + b     # a会被隐式转换为浮点数

print(c)      # 输出 7.0

在这个例子中,a(整数)和b(浮点数)相加时,Python会自动将a转换为浮点数,以进行运算。

显示转换

显示转换,也称为强制转换,指的是程序员显式地调用转换函数来转换数据类型。这种转换需要使用Python提供的内置函数,如int(), float(), str()等。例如:

a = "123"            # 字符串

b = int(a)          # 显示转换为整数

c = b + 5           # 进行整数运算

print(c)            # 输出 128

在这个例子中,使用int()函数将字符串"123"转换为整数。

建议:

对于简单和明显的转换,可以依赖Python的隐式转换。

对于复杂或可能引起歧义的情况,最好使用显式转换。

【隐式转换和显式转换的比较

安全性:

隐式转换可能在某些情况下导致意外结果,特别是在复杂表达式中。显式转换更安全,因为程序员明确指定了转换的意图。

可读性:

隐式转换可能使代码更简洁,但有时会降低可读性。显式转换使代码的意图更清晰,提高了可读性。】

Python提供了多种内置函数来实现不同数据类型之间的转换。以下是常见的数据类型转换函数:

1.转换为整数 (int):

int(3.14)    # 3

int("123")   # 123

int(True)    # 1

2.转换为浮点数 (float):

float(5)     # 5.0

float("3.14") # 3.14

float(False)  # 0.0

3.转换为字符串 (str):

str(42)      # "42"

str(3.14)    # "3.14"

str(True)    # "True"

4.转换为布尔值 (bool):

bool(1)      # True

bool(0)      # False

bool("hello") # True

bool("")     # False

5.转换为列表 (list):

list("hello")  # ['h', 'e', 'l', 'l', 'o']

list((1, 2, 3)) # [1, 2, 3]

6.转换为元组 (tuple):

tuple([1, 2, 3])  # (1, 2, 3)

tuple("hello")    # ('h', 'e', 'l', 'l', 'o')

7.转换为集合 (set):

set([1, 2, 2, 3])  # {1, 2, 3}

set("hello")       # {'h', 'e', 'l', 'o'}

8.转换为字典 (dict):

dict([('a', 1), ('b', 2)])  # {'a': 1, 'b': 2}

注意事项:

并非所有的转换都是可能的。例如,你不能将非数字的字符串转换为整数。

在进行转换时,要注意可能出现的数据丢失。例如,将浮点数转换为整数会丢失小数部分。

布尔值转换时,空值(如0, "", [], {})通常被视为False,非空值视为True。

运算符


Python中的运算符是用于执行各种操作的符号或组合。在Python中,运算符可分为几大类,。以下是对这些运算符的详细介绍:
1. 算术运算符
用于进行基本的数学运算。
+:加法
a = 5
b = 3
result = a + b  # 8

-:减法
a = 5
b = 3
result = a - b  # 2

*:乘法
a = 5
b = 3
result = a * b  # 15

/:除法(总是返回浮点数)
a = 5
b = 2
result = a / b  # 2.5

1/3  # 输出:0.3333333333333333
在Python中除法(/)能除尽也保留一位小数,如:
4/2  # 输出:2.0

//:整除(返回整数,向下取整)
a = 5
b = 2
result = a // b  # 2

向下取整的意思:结果是向负无穷方向舍入,如:
7 // 2  # 结果是 3
-7 // 2  # 结果是 -4,因为 -4 是不大于 -3.5 的最大整数。

%:取余(返回余数)
a = 5
b = 2
result = a % b  # 1

**:幂运算(如a**b表示a的b次幂)
a = 2
b = 3
result = a ** b  # 8

问,print(6 + 8/2)的输出结果为何是10.0?
在这个表达式中,除法(/)的优先级高于加法(+)。/ 运算符执行浮点除法,即使操作数都是整数。
8/2 = 4.0 (注意结果是浮点数)。然后进行加法:6 + 4.0。当整数(6)和浮点数(4.0)相加时,Python 会自动将结果转换为浮点数。
6 + 4.0 = 10.0。最终print() 函数输出 10.0

2. 关系(比较)运算符
用于比较两个值的运算符。
==:等于,例如:
a = 5
b = 3
result = a == b  # False
提示
print(10 == 10.0)  # 结果是True,整数 10 和浮点数 10.0 的值实际上是相同的。Python会将它们转换为相同的类型进行比较,结果是 True。
print(0 == False)  # 结果是True,Python中,False 其实等价于整数 0。所以,当你比较 0 与 False 时,它们也是相等的

!=:不等于,例如:
a = 5
b = 3
result = a != b  # True

>:大于,例如:
a = 5
b = 3
result = a > b  # True

<:小于,例如:
a = 5
b = 3
result = a < b  # False

>=:大于等于,例如:
a = 5
b = 3
result = a >= b  # True

<=:小于等于,例如:
a = 5
b = 3
result = a <= b  # False

3. 逻辑运算符
用于逻辑运算,通常用于条件判断。
and:与,返回两个表达式都是 True 时的值,例如:
a = True
b = False
result = a and b  # False

or:或,返回两个表达式有一个为 True 时的值,例如:
a = True
b = False
result = a or b  # True

not:非,返回布尔表达式的反转值,例如:
a = True
result = not a  # False

Python中的逻辑运算符 and 和 or 是惰性求值(也称为短路求值)的。这意味着这些运算符在可能的情况下会避免执行不必要的计算。and 和 or 运算符不仅仅返回布尔值(True 或 False),它们实际上返回操作数之一。
对于 and 运算符:
如果第一个操作数为假(在布尔上下文中评估为False),返回第一个操作数。
否则,返回第二个操作数。
对于 or 运算符:
如果第一个操作数为真(在布尔上下文中评估为True),返回第一个操作数。
否则,返回第二个操作数。
例如:
print(12 and 10) 结果是10
print(10 and 12) 结果是12
print(12 or 10) 结果是12
print(10 or 12) 结果是10

4. 位运算符
用于操作二进制位。
&:按位与,例如:
a = 5  # 0101
b = 3  # 0011
result = a & b  # 0001,即 1

|:按位或,例如:
a = 5  # 0101
b = 3  # 0011
result = a | b  # 0111,即 7

^:按位异或,例如:
a = 5  # 0101
b = 3  # 0011
result = a ^ b  # 0110,即 6

~:按位取反,例如:
a = 5  # 0101
result = ~a  # 1010(在二进制补码表示中为 -6)

<<:左移,例如:
a = 5  # 0101
result = a << 1  # 1010,即 10

>>:右移,例如:
a = 5  # 0101
result = a >> 1  # 0010,即 2

5. 赋值运算符
用于给变量赋值的运算符。
= : 赋值,例如:
a = 5

+= : 加并赋值,例如:
a = 5
a += 3  # a = a + 3,即 a = 8

-= : 减并赋值,例如:
a = 5
a -= 3  # a = a - 3,即 a = 2

*= : 乘并赋值,例如:
a = 5
a *= 3  # a = a * 3,即 a = 15

/= : 除并赋值,例如:
a = 5
a /= 2  # a = a / 2,即 a = 2.5

//= : 整除并赋值,例如:
a = 5
a //= 2  # a = a // 2,即 a = 2

%= : 取余并赋值,例如:
a = 5
a %= 2  # a = a % 2,即 a = 1

**= : 幂并赋值,例如:
a = 2
a **= 3  # a = a ** 3,即 a = 8

6. 身份运算符
用于比较两个对象是否相同。
is:判断两个对象是否是同一个对象,例如:
a = [1, 2, 3]
b = a
result = a is b  # True

is not:判断两个对象是否不是同一个对象,例如:
a = [1, 2, 3]
b = [1, 2, 3]
result = a is not b  # True
说明:is 运算符比较的是对象的身份(identity)实际是比较内存地址,而不是值。它检查两个变量是否指向内存中的同一个对象。因为 a 和 b 是两个独立创建的列表对象,尽管它们的内容相同,但它们在内存中是不同的对象。所以 a is not b 返回 True。
a = [1, 2, 3]
b = [1, 2, 3]
result = a == b  # True
说明:使用 == 比较两个列表的内容是否相同。

7. 成员运算符
用于测试一个值是否在序列中。
in:判断元素是否在序列中,例如:
a = 5
b = [1, 2, 3, 4, 5]
result = a in b  # True

not in:判断元素是否不在序列中,例如:
a = 5
b = [1, 2, 3, 4]
result = a not in b  # True

运算符的优先级和结合性

运算符优先级决定了复杂表达式中运算符的执行顺序。高优先级的运算符会在低优先级的运算符之前执行。例如:

result = 2 + 3 * 4

在这个表达式中,乘法(*)的优先级高于加法(+),所以先执行3 * 4,然后再加2。结果是14,而不是20。

运算符结合性:

结合性定义了相同优先级的运算符在表达式中的执行顺序,可以是从左到右(左结合)或从右到左(右结合)。

左结合:大多数运算符都是左结合的,如加法、减法、乘法、除法等。

例如:a - b - c 等价于 (a - b) - c

右结合:少数运算符是右结合的,最常见的是指数运算符(**)。

例如:2 ** 3 ** 2 等价于 2 ** (3 ** 2),结果是512,而不是64。

提示,在编写复杂表达式时,使用括号来明确表示运算顺序通常是一个好习惯。这不仅可以避免错误,还能使代码更容易理解。

Python 运算符优先级和结合性表

运算符说明

Python运算符

优先级

结合性

小括号

( )

19

索引运算符

x[i] 或 x[i1: i2 [:i3]]

18

属性访问

x.attribute

17

乘方(幂)

**

16

按位取反

~

15

符号运算符

+(正号)、-(负号)

14

乘除

*、/、//、%

13

加减

+、-

12

位移

>>、<<

11

按位与

&

10

按位异或

^

9

按位或

|

8

比较运算符

==、!=、>、>=、<、<= 

7

is 运算符

is、is not

6

in 运算符

in、not in

5

逻辑非

not

4

逻辑与

and

3

逻辑或

or

2

逗号运算符

exp1, exp2

1

说明:优先级数大的优先级高。

python运算符优先级官方文档

英文https://docs.python.org/3/reference/expressions.html#operator-precedence)

中文https://docs.python.org/zh-cn/3/reference/expressions.html#operator-precedence

这篇关于Python青少年简明教程:数据类型和操作符的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1091639

相关文章

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

python: 多模块(.py)中全局变量的导入

文章目录 global关键字可变类型和不可变类型数据的内存地址单模块(单个py文件)的全局变量示例总结 多模块(多个py文件)的全局变量from x import x导入全局变量示例 import x导入全局变量示例 总结 global关键字 global 的作用范围是模块(.py)级别: 当你在一个模块(文件)中使用 global 声明变量时,这个变量只在该模块的全局命名空

Makefile简明使用教程

文章目录 规则makefile文件的基本语法:加在命令前的特殊符号:.PHONY伪目标: Makefilev1 直观写法v2 加上中间过程v3 伪目标v4 变量 make 选项-f-n-C Make 是一种流行的构建工具,常用于将源代码转换成可执行文件或者其他形式的输出文件(如库文件、文档等)。Make 可以自动化地执行编译、链接等一系列操作。 规则 makefile文件

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

nudepy,一个有趣的 Python 库!

更多资料获取 📚 个人网站:ipengtao.com 大家好,今天为大家分享一个有趣的 Python 库 - nudepy。 Github地址:https://github.com/hhatto/nude.py 在图像处理和计算机视觉应用中,检测图像中的不适当内容(例如裸露图像)是一个重要的任务。nudepy 是一个基于 Python 的库,专门用于检测图像中的不适当内容。该

SWAP作物生长模型安装教程、数据制备、敏感性分析、气候变化影响、R模型敏感性分析与贝叶斯优化、Fortran源代码分析、气候数据降尺度与变化影响分析

查看原文>>>全流程SWAP农业模型数据制备、敏感性分析及气候变化影响实践技术应用 SWAP模型是由荷兰瓦赫宁根大学开发的先进农作物模型,它综合考虑了土壤-水分-大气以及植被间的相互作用;是一种描述作物生长过程的一种机理性作物生长模型。它不但运用Richard方程,使其能够精确的模拟土壤中水分的运动,而且耦合了WOFOST作物模型使作物的生长描述更为科学。 本文让更多的科研人员和农业工作者

pip-tools:打造可重复、可控的 Python 开发环境,解决依赖关系,让代码更稳定

在 Python 开发中,管理依赖关系是一项繁琐且容易出错的任务。手动更新依赖版本、处理冲突、确保一致性等等,都可能让开发者感到头疼。而 pip-tools 为开发者提供了一套稳定可靠的解决方案。 什么是 pip-tools? pip-tools 是一组命令行工具,旨在简化 Python 依赖关系的管理,确保项目环境的稳定性和可重复性。它主要包含两个核心工具:pip-compile 和 pip

C++操作符重载实例(独立函数)

C++操作符重载实例,我们把坐标值CVector的加法进行重载,计算c3=c1+c2时,也就是计算x3=x1+x2,y3=y1+y2,今天我们以独立函数的方式重载操作符+(加号),以下是C++代码: c1802.cpp源代码: D:\YcjWork\CppTour>vim c1802.cpp #include <iostream>using namespace std;/*** 以独立函数