Python 是一门动态类型的编程语言,它具有强大的变量和数据类型系统。本文我将详细介绍下 Python 的变量、常量和数据类型,并提供一些实例来帮助粉丝更好地理解它们。
在程序设计中,变量是一种存储数据的载体。计算机中的变量是实际存在的数据或者说是存储器中存储数据的一块内存空间,变量的值可以被读取和修改,这是所有计算和控制的基础。计算机能处理的数据有很多种类型,除了数值之外还可以处理文本、图形、音频、视频等各种各样的数据,那么不同的数据就需要定义不同的存储类型。Python中的数据类型很多,而且也允许我们自定义新的数据类型,我们先介绍几种常用的Python数据类型。
首先介绍下变量,变量是用于存储数据的标识符。在 Python 中,你可以直接给变量赋值,并且不需要提前声明变量的类型。Python 会根据赋值语句自动推断变量的类型。下面通过几个例子来说明变量的类型和变量使用,下面是一些代码示例:
variable01.py
变量的初始化
age = 28
name = “steverocket”
blog = “https://mp.weixin.qq.com/s/V5Axn-ZWi22ubh5Jiocb9g”
在上面的示例中,我们分别将整数 28 和字符串 " steverocket ",以及一个URL的字符串,赋值给了变量age、name和blog。
number1 = 123456789
number2 = 987654321
print(number1 + number2) # 1111111110
print(number1 - number2) # -864197532
print(number1 * number2) # 121932631112635269
print(number1 / number2) # 0.1249999988609375
# 不同类型的数值进行运算(这点与Golang就非常不一样)
print(PI + age) # 31.14159
print(PI * age) # 87.96452
在Python中可以使用type函数对变量的类型进行检查。程序设计中函数的概念跟数学上函数的概念是一致的,数学上的函数相信大家并不陌生,它包括了函数名、自变量和因变量。如果暂时不理解这个概念也不要紧,我们会在后续的章节中专门讲解函数的定义和使用,敬请关注公众号CTO Plus后面的文章。
from FeaturesVersion import AGE, AUTHOR, BLOG
number = 1 + 5j
is_gender = True
print(type(AGE)) #
print(type(PI)) #
print(type(BLOG)) #
print(type(number)) #
print(type(is_gender)) #
# 将变量的类型拿来比较
print(type(AUTHOR) == type(BLOG)) # True
print(type(AUTHOR) is type(BLOG)) # True
print(type(AGE) == type(BLOG)) # False
print(type(AGE) is type(BLOG)) # False
type是Python的内置函数,以及还有比如input()、print()分别属于Python3的获取键盘输入(字符串)函数,和输出带占位符的字符串函数。关于什么是Python的内置函数,以及其他内置函数的详细介绍和使用可以参考公众号CTO Plus前面的文章:
Python3中变量的类型转换是将一个类型的变量转换为另一个类型的变量。在编程中,经常需要对不同类型的变量进行操作和处理,因此我们了解和掌握类型的转换是非常重要的。
可以使用Python中内置的函数对变量类型进行转换,Python3中常见的类型转换有以下几种:
1. 整数类型转换
将一个数值或字符串转换成整数,可以指定进制(其他类型的变量转换为整数类型)。可以使用int()函数来实现,例如:
num = int(3.14) # 将浮点数转换为整数,结果为3
new_pi = int(PI)
# float转int
print(new_pi, type(new_pi)) # 3
2. 浮点数类型转换
将一个字符串转换成浮点数(其他类型的变量转换为浮点数类型)。可以使用float()函数来实现,例如:
num = float(5) # 将整数转换为浮点数,结果为5.0
number = “123456.6789”
print(number, type(number)) # 123456.6789
# str转float
new_number_f = float(number)
print(new_number_f, type(new_number_f)) # 123456.6789
# str转int
# number = “123456.6789” 或 “123456.” 使用int转换会报错 ValueError: invalid literal for int() with base 10: ‘123456.6789’
number = “123456”
new_number_i = int(number)
print(new_number_i, type(new_number_i)) # 123456
3. 字符串类型转换
将其他类型的变量转换为字符串类型(指定的对象转换成字符串形式),可以指定编码。可以使用str()函数来实现,例如:
# 分别将int和float的数值转为str
num = str(123) # 将整数转换为字符串,结果为"123"
new_number_s1 = str(new_number_i)
new_number_s2 = str(new_number_f)
print(new_number_s1, type(new_number_s1)) # 123456
print(new_number_s2, type(new_number_s2)) # 123456.6789
4. 列表类型转换
将其他类型的变量转换为列表类型。可以使用list()函数来实现,例如:
str = “微信公众号:CTO Plus”
str_to_list = list(str)
print(type(str_to_list), str_to_list) #
5. 元组类型转换
将其他类型的变量转换为元组类型。可以使用tuple()函数来实现,例如:
lis = [11, 22, 33]
lis_to_tuple = tuple(lis)
print(type(lis_to_tuple), lis_to_tuple) #
6. 字典类型转换
将其他类型的变量转换为字典类型。可以使用dict()函数来实现,例如:
lst = [(“name”, “SteveRocket”), (“age”, AGE)]
dic = dict(lst)
print(type(dic), dic) #
7. 将整数转换成该编码对应的字符串(一个字符)
# chr()
num1, num2, num3 = 45, 46, 47
num1_c, num2_c, num3_c = chr(num1), chr(num2), chr(num3)
print(num1_c, num2_c, num3_c) # - . /
print(type(num1_c), type(num2_c), type(num3_c)) #
8. 将字符串(一个字符)转换成对应的编码(整数)
# ord()
chr1, chr2, chr3, chr4 = ‘a’, ‘A’, ‘B’, ‘C’
print(ord(chr1), ord(chr2), ord(chr3), ord(chr4)) # 97 65 66 67
print(type(ord(chr1))) #
需要注意的是,有些类型之间是不能直接进行转换的,例如字符串和整数之间的转换,只有在字符串表示的是合法的整数时才能转换成功。
另外,还可以使用eval()函数进行动态的类型转换,eval()函数会根据字符串的内容自动判断转换的类型,例如:
e1 = eval(“123”) # 将字符串转换为对应的类型,结果为整数123
e2 = eval(“12.3”)
# e3 = eval(“12.3.455”) # SyntaxError: invalid syntax
# e3 = eval(BLOG) # SyntaxError: invalid character ‘:’ (U+FF1A)
# e3 = eval(“hello steverocket”) # SyntaxError: invalid syntax
e3 = eval(28) # TypeError: eval() arg 1 must be a string, bytes or code object
print(e1, e2) # 123 12.3
print(type(e1), type(e2)) #
在进行类型转换时,需要注意数据的有效性和合法性,避免出现错误的转换结果。同时,还应该根据具体的需求选择合适的类型转换方式,以保证程序的正确性和效率。
常量是指在程序中不可更改的值。在 Python 中,虽然没有内置的常量类型,但是可以通过约定来表示常量。通常,常量的命名使用大写字母,以便与变量区分。下面是一些示例:
PI = 3.14159
MAX_SIZE = 100
在上面的示例中,我们分别将圆周率和最大尺寸定义为常量 PI 和 MAX_SIZE。
对于每个变量我们需要给它取一个名字,就如同我们每个人都有属于自己的响亮的名字一样。在Python中,变量命名需要遵循以下这些必须遵守硬性规则和强烈建议遵守的非硬性规则。
变量名由字母(广义的Unicode字符,不包括特殊字符)、数字和下划线构成,数字不能开头,多个单词用下划线连接。
大小写敏感(大写的a和小写的A是两个不同的变量)。
不要跟关键字(有特殊含义的单词,后面会讲到)和系统保留字(如函数、模块等的名字)冲突。
受保护的实例属性用单个下划线开头。
私有的实例属性用两个下划线开头。
# 区分大小写的变量
num = 123
Num = 456
print(num)# 123
print(Num)# 456
当然,作为一个专业的程序员,给变量(事实上应该是所有的标识符)命名时做到见名知意也是非常重要的。关于更多的Python其他规范可以参考公众号CTO Plus前面的文章《通读Python PEP8代码规范》和后面的文章《Python3进阶之变量命名各种下划线的含义和区别》和《Python3进阶之内置魔法方法(双下划线开头和结尾)总结大全》
接下来介绍下变量的数据类型,Python 提供了多种数据类型,包括整数、浮点数、布尔值、字符串、列表、元组、字典等。下面是一些常用的数据类型及其示例:
整数是不带小数部分的数字。例如:
num1 = 12345
print(type(num1), type(0), type(-1)) #
整型:Python中可以处理任意大小的整数(Python 2.x中有int和long两种类型的整数,但这种区分对Python来说意义不大,因此在Python 3.x中整数只有int这一种了),而且支持二进制(如0b100,换算成十进制是4)、八进制(如0o100,换算成十进制是64)、十进制(100)和十六进制(0x100,换算成十进制是256)的表示法。
浮点数是带有小数部分的数字。例如:
num2 = 12345.
num3 = 123.467
num4 = -123.467
print(type(num2)) #
print(type(num3)) #
print(type(num4)) #
浮点型:浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的,浮点数除了数学写法(如123.456)之外还支持科学计数法(如1.23456e2)。
num5 = 3+5j
print(type(num5)) #
复数型:形如3+5j,跟数学上的复数表示一样,唯一不同的是虚部的i换成了j。实际上,这个类型并不常用,大家了解一下就可以了。
布尔值表示真或假。Python 中的布尔值只有两个值:True 和 False。例如:
b1 = True
b2 = False
print(type(b1), type(b2)) #
# 其他类型转为bool类型
print(bool(123)) # True
print(bool(“”)) # False
print(bool(None)) # False
l1 = False
l2 = True
print(l2 or l1) # True
print(False and False) # False
布尔型:布尔值只有True、False两种值,要么是True,要么是False,在Python中,可以直接用True、False表示布尔值(请注意大小写),也可以通过布尔运算计算出来(例如3 < 5会产生布尔值True,而2 == 1会产生布尔值False)。
Python3中的字符串是不可变的序列(不可变的数据类型),字符串是由字符组成的序列,可以使用单引号、双引号或三引号来表示。字符串可以进行拼接、切片、遍历等操作。
特点:
字符串是不可变的序列。
可以使用单引号、双引号或三引号来表示。
支持字符串拼接、切片、遍历等操作。
from FeaturesVersion import BLOG, WEIXIN_URL
print(BLOG, WEIXIN_URL) # 微信公众号:CTO Plus https://mp.weixin.qq.com/s/0yqGBPbOI6QxHqK17WxU8Q
print(type(BLOG), type(WEIXIN_URL)) #
s1 = ‘a’
s2 = ‘SteveRocket’
s3 = “”"微信公众号:CTO Plus
Author:SteveRocket"“”
print(type(s1), type(s2), type(s3)) #
从上述代码可以看出,字符串是以单引号或双引号括起来的任意文本,比如’ SteveRocket '和" SteveRocket ",字符串还有原始字符串表示法、字节字符串表示法、Unicode字符串表示法,而且可以书写成多行的形式(用三个单引号或三个双引号开头,三个单引号或三个双引号结尾)。
关于字符串(str)的进一步介绍和使用请关注公众号CTO Plus后面的文章《Python3基础之经典数据类型字符串(str)开发使用注意事项和代码示例详解》和《Python3基础之字符串的高级操作和正则表达式的结合使用实战》。
Python3中的列表是可变的有序的序列(数据集合),可以包含任意类型的数据。列表可以进行增删改查、切片、遍历等操作。
特点:
列表是可变的序列。
可以包含任意类型的数据。
支持增删改查、切片、遍历等操作。
li1 = [1, 2, 3, 4, 5]
li2 = [AGE, WEIXIN_URL, BLOG, {“user”: AUTHOR}]
print(li1, li2)
print(type(li1), type(li2)) #
关于元组(tuple)的进一步介绍和使用请关注公众号CTO Plus后面的文章《Python3基础之经典数据类型列表(list)的开发使用注意事项和代码示例详解》和《Python3基础之经典数据类型序列(sequence)的开发使用注意事项和代码示例详解》。
Python3中的元组是有序、不可变的序列(数据集合),可以包含任意类型的数据。元组可以进行遍历、切片等操作,但不能进行修改。
特点:
元组是不可变的序列。
可以包含任意类型的数据。
支持遍历、切片等操作,但不能进行修改。
t1 = (1, 2, 3, 4, 5)
t2 = (AGE, WEIXIN_URL, BLOG, {“user”: AUTHOR})
print(t1, t2) # (1, 2, 3, 4, 5) (28, ‘https://mp.weixin.qq.com/s/0yqGBPbOI6QxHqK17WxU8Q’, ‘微信公众号:CTO Plus’, {‘user’: ‘steverocket’})
print(type(t1), type(t2)) #
t3 = (11, 2, 11, 4, 11)
print(t3)# (11, 2, 11, 4, 11)
关于元组(tuple)的进一步介绍和使用请关注公众号CTO Plus后面的文章《Python3基础之经典数据类型元组(tuple)开发使用注意事项和代码示例详解》。
Python3中的集合是一种无序、不重复的数据结构,可以进行交集、并集、差集等操作。
特点:
集合是一种无序、不重复的数据结构。
支持交集、并集、差集等操作。
典型的代码示例:
set1 = {11, 22, 33}
# set2 = {AGE, AUTHOR, WEIXIN_URL, {‘user’:{“Author”:AUTHOR, ‘Age’:AGE}}} # TypeError: unhashable type: ‘dict’
# set2 = {AGE, AUTHOR, WEIXIN_URL, {}} # TypeError: unhashable type: ‘dict’
set2 = {AGE, AUTHOR, WEIXIN_URL}
print(set1, set2) # {33, 11, 22} {‘steverocket’, ‘https://mp.weixin.qq.com/s/0yqGBPbOI6QxHqK17WxU8Q’, 28}
print(type(set1), type(set2)) #
从上述输出结果来看,集合(set)是一种无序的结构,并且里面的元素不能存在字典或子集合的元素类型。
set1 = {1, 2, 3}
set2 = {2, 3, 4}
# 集合求交集
print(set1 & set2) # 输出:{2, 3}
# 集合求并集
print(set1 | set2) # 输出:{1, 2, 3, 4}
# 集合求差集
print(set1 ^ set2) # 输出:{1, 4}
print(set1 - set2) # 输出:{1}
print(set2 - set1) # 输出:{4}
关于集合(set)的进一步介绍和使用请关注公众号CTO Plus后面的文章《Python3基础之经典数据类型集合(set)开发使用注意事项和代码示例详解》。
字典是无序的键值对集合。字典中的键必须是唯一的,而值可以是不同的数据类型。例如:
Python3中的字典是一种键值对的数据结构,可以包含任意类型的数据。字典可以进行增删改查、遍历等操作。
特点:
字典是一种键值对的数据结构。
可以包含任意类型的数据。
支持增删改查、遍历等操作。
d1 = {‘name’: AUTHOR, ‘age’: AGE, ‘blog’: BLOG}
d2 = {1: ‘steverocket’, 2: ‘cramer’, 3: ‘python’, ‘user_info’: d1}
print(d1, d2) {‘name’: ‘steverocket’, ‘age’: 28, ‘blog’: ‘微信公众号:CTO Plus’} {1: ‘steverocket’, 2: ‘cramer’, 3: ‘python’, ‘user_info’: {‘name’: ‘steverocket’, ‘age’: 28, ‘blog’: ‘微信公众号:CTO Plus’}}
print(type(d1), type(d2)) #
在本文中,我们详细介绍了 Python 的变量、常量和数据类型。变量用于存储数据,可以直接赋值而无需声明类型。常量是不可更改的值,通常使用大写字母命名。Python 提供了多种数据类型,包括整数、浮点数、布尔值、字符串、列表、元组和字典。了解这些基本概念对于编写高质量的 Python 代码非常重要。
Python3中的类型转换是将一个类型的变量转换为另一个类型的变量,可以使用int()、float()、str()、list()、tuple()、dict()等函数进行转换。在进行类型转换时,需要注意数据的有效性和合法性,以及选择合适的转换方式。通过掌握和应用类型转换,可以更好地处理不同类型的变量,提高程序的灵活性和可靠性。
感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。
CSDN大礼包:全网最全《Python学习资料》免费赠送!(安全链接,放心点击)
一、Python所有方向的学习路线
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。
二、Python必备开发工具
工具都帮大家整理好了,安装就可直接上手!
三、最新Python学习笔记
当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
四、Python视频合集
观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
五、实战案例
纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
六、面试宝典
CSDN大礼包:全网最全《Python学习资料》免费赠送!(安全链接,放心点击)
若有侵权,请联系删除