> 文档中心 > 3.变量的声明,Python基本数据类型及其转换

3.变量的声明,Python基本数据类型及其转换

  • 变量是什么
    • 1.1变量名的规范
    • 1.2 变量值
    • 1.3 is与==
    • 1.3 内存指向
  • 数据类型
    • 1.整形(int)
    • 2.字符串(str)
    • 3.布尔类型(bool)
    • 4.列表(list)
    • 5.字典
    • 6.集合
    • 7.元组
    • 8.类型转换
  • 总结

变量是什么

变量顾名思义就是会变的一个数值,也可以看成 姓名=“asx”。这种指向性的"asx"的等于xxx的姓名。我们可以通过变量名去访问变量值,从而得到数据。

变量的定义

变量名=变量值# 示例name="刘香水"print(name)

定义不同的变量

age = 18name = "刘香水"address = "上海市杨浦区xxx"addr = "上海市"+"杨浦区" + name # 等于 "上海市杨浦区刘香水"print(name)print(addr)

注意:

  • 变量的赋值操作 age = 18 ,其实就是将18的赋值给age

1.1变量名的规范

三个规范:

原则 ==> 变量名应该见名知意

  • 变量名只能有字母、数字、下划线组成
  • 不能以数字开头
  • 不能用Python的内置关键字

给变量命名的两个建议:

  • 下划线连接命名(小写)
face_book="哈哈哈"brother_name = "李大牛"
  • 见名知意
name = "李大牛"age = 18

1.2 变量值

变量值指的就是变量值所存在的内存地址,我们读取变量实际就是通过变量值然后访问对应的内存地址并把他数据读取出来。

name = 'limusen'# id: 反映的是变量值的内存地址,变量值的地址不同则它的id不同print(id(name))  # 查看变量值的id号# type: #不同类型的值用来表示记录不同的状态print(type(name))  # 查看type的数据类型# value: 值本身print(name)

1.3 is与==

值相同的情况下,id可能不同,那么也就是两个不同的内存空间可以存储相同的值,这个是没有影响的

# 两个值一样的情况下 内存地址会一样吗?x = 'info: Egon: 18'y = 'info: Egon: 18'print(x,y)print(id(x),id(y))# is:比较左右两个值身份id是否相等# ==:比较左右两个值的值是否相等"""值相等的情况下,id可能不同。即两块不同的内存空间里面可以存相同的值>>> x = 'info: Egon: 18'>>> y = 'info: Egon: 18'>>> print(x,y)info: Egon: 18 info: Egon: 18>>> print(id(x),id(y))20407384 20407424>>> x == yTrue>>> x is yFalse"""

总结: is跟==的区别
is是比较两个值的id是否相等
等号是比较左右两个值的值是否相等

1.3 内存指向

首先我们要了解到定义变量会先做什么事情。

使用变量的原则是:先定义后使用。

那我们在声明变量的时候会在内存中开辟一个空间存储这个值,所以我们可以通过这个变量名读取变量值的数据。
在这里插入图片描述

调用变量的时候其实访问的是内存空间,然后从内存空间当中取出值

或者你可以理解成 name 就是房卡,只有拿正确的房卡才能进入房间,才能读取到 ‘egon’ 值

在这里插入图片描述

数据类型

计算机里面包含的数据类型有数字、字符串、浮点型、bool类型等…

1.整形(int)

整形:顾名思义是整数类型。

在我们日常生活当中可以看到的是,1,2,3之类是数字,包括但不限于年龄、工资、计算等…

那整数类型就可以进行加减乘除相关的运算,这里需要注意的是,整数类型只能跟整数类型进行换算、运算

# encoding: utf-8# Author    : limusen# Datetime  : 2022/3/26 10:03 上午# File      : 04 整型.py# explain   : 文件说明print(666)print(2 + 10)print(2 * 10)print(2 / 10)print(2 % 10)print(2  10)

2.字符串(str)

字符串可以理解为书本当中的字,那字都是需要我们输入内容才能展示出来。那么在Python当中需要输出字符串是一个什么格式呢?

字符串可以用单引号、双引号、三引号来进行包裹,然后进行输出

# encoding: utf-8# Author    : limusen# Datetime  : 2022/3/26 10:13 上午# File      : 05 字符串.py# explain   : 文件说明# 字符串可以用单引号' 也可以用双引号"print("我是一个人")print('哈哈哈哈哈哈')# 三引号print("""这是三个引号~~~""")

对于字符串补充:

  • 加,两个字符串可以通过加好拼接起来。
print("我是"+"你的老师")
  • 乘,让整型跟字符串相乘,以实现让字符串重复出现N次并拼接起来。
print(3 * "今天我想出去玩")

3.布尔类型(bool)

布尔类型中共有两个值:True/False

  • 常用用来判断条件是否满足
    • 如果条件成立就返回True
    • 如果不成立则返回False
# encoding: utf-8# Author    : limusen# Datetime  : 2022/3/26 10:23 上午# File      : 06 布尔类型.py# explain   : 文件说明print(1>2) # 肯定是不满足的 所以输出Falseprint(1==1) # 这两个是相等的,所以输出True

补充:

整型可以跟整型比较是否相等或大于小于,字符串也可以跟字符串比较是否等于大于小于,但是需要注意的是,整形不能跟字符串比较大小,不然程序就会报错

1 > 21 ==3 'alex'== 'eric'1 == 'alex' 1 > 'alex' # 无法进行大小比较
  • 字符串之间是通过什么来进行比较的呢?

    • 根据位置来进行比较

    • 根据ascii码值来进行比较

举例:

# 这个语句会输出什么内容呢?print('abcd' > 'aebc') # 输出的结果是False

容我细细道来,首先字符串会根据起始位置进行比较,如果说对比字符当前的已经得出结果了,后续则不会在进行对比。

根据ascii码值来判断。小写英文字母越靠后的数值就越大,所以可以看到e比b大! 所以就直接输出结果了!

在这里插入图片描述

4.列表(list)

列表,是一个有序且可变的容器,在里面看可以存放多种不同类型的元素。可以理解为黑洞,什么都可以丢进去

  • 定义列表
# 列表 定义方式  变量名 = [] number = [1,2,3,5,6,7,8]name = ["李二狗","张大牛","狗不理"]data_list = [1,"李二狗",True,[1,2,3],(1,2)]print(number) # [1,2,3,5,6,7,8]

5.字典

字典都是无序的,键不重复且 元素只能是键值对的可变的容器

# encoding: utf-8# Author    : limusen# Datetime  : 2022/4/1 8:44 下午# File      : 字典.py# explain   : 文件说明# 定义空字典a = {}# 定义有数据的字典a = {"name" : "王二狗" , "age": 18}info = {    "name": "王二狗",    11: 122,    (11, 22): 231,    True: 2}print(info[True])# 输出结果2 

6.集合

集合是一个无序的、可变的、不允许数据重复的容器。

v = {} # 需要注意的是,这个是定义了一个空字典不是空集合v1 = set() # 空集合是这样的v2 = {1,2,3,4,5} # 定义集合print(type(v))print(type(v1))# 输出结果<class 'dict'><class 'set'>

7.元组

元组(tuple),是一个有序不可变的容器,在里面可以存放多个不同类型的元素。

v1 = (11,22,33)v2 = ("皇上","飞毛腿")v3 = (True,123,"Alex",[11,22,33,44])# 建议:议在元组的最后多加一个逗v3 = ("皇上","飞毛腿",)

8.类型转换

  • int,整型定义时,必须是数字且无索引。例如:5、9、0
  • str,字符串定义式,必须用双引号括起来,例如:“eess”
  • bool,布尔值定义式,只能写True和False

不同的数据类型都有不同的功能,例如:整型可以加减乘除,而字符串加(拼接)和乘法。如果想要做类型转换的话就需要用到python的内置方法进行转换:想要转换什么类型就用什么类型包裹起来

# 例如:int("222") # 就等于"222"被转化成222了

转为整型

# 字符串转为整形int("666")int("999")# 将布尔值转换为整型int(False)int(True)

转为字符串

# 将数字转换成字符串str(665)

转换为布尔类型

# 整形转布尔类型bool(1) Truebool(2) True# 这里需要注意的是,0跟空字符串转换成布尔类型的时候都为False 其他都为Truebool(0) Falsebool("") False

转换为浮点型

# 字符串转换成浮点型float("7.88")

总结:

三句话搞定类型转换:

  • 其他类型转换为布尔类型时,除了空字符串、0以外其他都是True
  • 字符串转整型时,只有完全包含数字的才能转换为整型(例如:“968”),否则就会报错
  • 想要转化成什么类型,就只需要用什么类型的方法包裹一下就行
str(...)int(...)bool(...)float(...)

总结

1.了解了什么是变量
2.了解了变量声明的准则以及内存的概念
3.Python的基本数据类型
4.数据类型的转换