变量与数据类型

2022-12-15 Python基础

Python种的变量名一般不需要额外指定变量类型,和js相似。变量名的组成由数字、字母或下划线组成,长度不限,一般在20字符以内。

username = 'cv大魔王'
age = 21

# 整型

下面是数据类型的使用。首先来看整形,python3中的整形只有int类型,没有short或者long等。内置函数type()可以获取变量的类型。

age = 21 #整形
age = int(21) #可以指定类型,python由long类型,python整型只有int了

height1 = 175.50 #浮点型
height2 = float(175.50) #浮点型只有float,没有double

print(type(height1)) #输出height1的类型,<class 'float'>

# 字符串

然后是字符型,单引号和双引号定义的字符是相同的,知识习惯问题。字符串不可改变,每次改变相当于从内存中重新获取了一块内存空间进行赋值,内置函数id可以返回变量的内存地址,我们打印出来发现两个内存地址并不相同。此外,字符串还有另外一种赋值方式,可以直接进行换行,代码如下。

if __name__ == '__main__':
    username = 'cv大魔王'
    print(id(username))

    username = 'C'
    print(id(username))

    info = '''
            今天是个大晴天
           '''
    print(info)

max和min函数可以查询字符串中编码最大的那个字符, len是获取字符串的长度

if __name__ == '__main__':
    username = 'cv大魔王'
    print(max(username)) #魔
    print(min(username)) #c
    print(len(username)) #5

# 布尔类型与空

在计算机中01是计算机的最原始形态,单个占空间也最小,故而经常会将0用来替代False,1代表True。Python中设计除了0以外的其他数都代表True,空字符串也代表False。

if __name__ == '__main__':
    print(bool('')) # 空字符的False
    print(bool(0)) # 0是False其他数字都是true
    print(bool(None)) # 布尔会将空识别成False

Python中空类型使用None表示,它在布尔类型中代表False

# 列表(list)

先来看list的定义,可以是各种类型的,和java数组类似,但是比java要灵活的多。

if __name__ == '__main__':
    str_array_01 = list(['小张', '小明', '小张'])  # 指定数据类型创建list
    str_array_02 = ['小张', '小明', '小张']  # 创建字符型list
    int_array = [1, 2, 3, 4]  # 创建整型list
    float_array = [3.14, 5.96, 0.0]  # 创建浮点型list
    bool_array = [True, False]  # 创建布尔类型list
    list_array = [[1, 2, 3, 4], [True, False]]  # 创建嵌套list
    mix_array = ['CV大魔王', 1, 3.14, None, True]  # 混合类型

in,max,min在列表中的使用如下,其中max和min在列表中使用,列表中的元素不能是多种类型,如果类型不统一会报错。

if __name__ == '__main__':
    int_array = [1, 2, 3, 4]
    print(1 in int_array)  # True
    print(5 in int_array)  # False
    print(max(int_array))  # 4
    print(min(int_array))  # 1

列表、元组和字典的使用这里仅仅只是基本介绍,详细用法会在后面的文章中记录。

# 元组(tuple)

元组和列表很相似,都是一种可以存储多种数据结构的队列,元组也是一 个有序的,且元素可以重复的集合。元组的定义和列表不同,元组中的元素存在于一个()小括号中,代码如下所示:

if __name__ == '__main__':
    int_array = (1, 2, 3, 4) # 元组的定义和list相似,能存放的内容和list也一样
    print(1 in int_array)  # True
    print(5 in int_array)  # False
    print(max(int_array))  # 4
    print(min(int_array))  # 1

元组和列表的区别是,列表是可变的,元组是不可变的,所有元组比列表占用资源更小。

# 字典(dist)

和java的Map集合类似,其中Key支持字符串、数字和元组类型,但是不支持列表。value支持所有Python类型,基本使用如下:

if __name__ == '__main__':
    person_1 = {'name': 'cv大魔王', 'age': 20}
    person_2 = dict({'name': 'cv大魔王', 'age': 20})
    print(person_1.get('name'))  # cv大魔王
    print(person_1.get('age'))  # 20

字典的特性:key是唯一的。

# 赋值运算

和java一样,除了=外还有+=-=*=/=%=,还有两个特殊的幂运算符**=整除运算符//=

运算符和java的区别主要是以下三种,/在java中是整除的意思,如果不指定为浮点数,运算的结果会直接舍弃小数,但是Python中会直接当作浮点数处理;//就是整除的意思,会直接舍弃小数,不会进行四舍五入;**就是幂运算,java中想要完成幂运算需要调用Math.pow()函数,Python确实简化了不少。

if __name__ == '__main__':
    print(10/3)  # 3.3333333333333335
    print(10//3)  # 3
    print(10**3)  # 1000

还有一些神奇的操作,这些操作在java中都是不支持的。

if __name__ == '__main__':
    name = 'Hello'
    print(name * 3)  # HelloHelloHello

    list01 = [1, 2, 3]
    print(list01 * 2)  # [1, 2, 3, 1, 2, 3]

    tuple01 = [1, 2]
    print(tuple01 * 2)  # [1, 2, 1, 2]

# 比较运算

比较运算符 说明
> 大于,如果>前面的值大于后面的值,则返回 True,否则返回 False。
< 小于,如果<前面的值小于后面的值,则返回 True,否则返回 False。
== 等于,如果==两边的值相等,则返回 True,否则返回 False。
>= 大于等于(等价于数学中的 ≥),如果>=前面的值大于或者等于后面的值,则返回 True,否则返回 False。
<= 小于等于(等价于数学中的 ≤),如果<=前面的值小于或者等于后面的值,则返回 True,否则返回 False。
!= 不等于(等价于数学中的 ≠),如果!=两边的值不相等,则返回 True,否则返回 False。
is 判断两个变量所引用的对象是否相同,如果相同则返回 True,否则返回 False。
is not 判断两个变量所引用的对象是否不相同,如果不相同则返回 True,否则返回 False。
上次更新: 1 年前