python基础1 八大基础数据类型

156 阅读7分钟

python的基础数据类型

整型

(关键字:int) 其实就是整数。例如:年龄 年份

基本使用:

age = 18
year = 2022

浮点型

(关键字:float) 其实就是小数。例如:身高 体重

基本使用:

weight = 75.6
height = 1.83

字符型(字符串)

(关键字:str) 其实就是文本信息。例如:姓名 地址 邮箱 爱好等。

基本使用:

name = 'Tom'
address = "shanghai"
hobby = ''' 睡觉\睡觉\睡觉'''
email = """110@163.com"""

解答:

字符串内部也可能需要用到引号,为了避免冲突报错,所以定义字符串给出了许多方式。(原因)

明确定义字符串的符合和内部文本的符号,只要不发生冲突就行。(核心)

当三引号左侧没有赋值符合和变量名时。意为注释。 当三引号左侧有赋值符号与变量名是。意为字符串。(解释)

列表(list)

本质

  • 能够存取多个数据,并且能够方便的获取整体或者局部。

基本使用

  • L1 = [1,2,3,4,5]

描述

  • 中括号括起来,内部可以存放多个数据,数据中间使用逗号隔开,且数据值可以是任意类型。
  • L2 = [1,1.2,'tom',[1,2,3]]

索引取值

name_list = ['张三','李四','王五']
print(name_list[0])
print(name_list[1])

输出结果: 1655710516025.png

name_list = ['张三', '李四', '王五']
print(name_list[10])

输出结果: 1655710621756.png

  • 我们可以看到:当我们索引超出范围时,就会出现报错。 注:it行业数字起始位置为0,现实生活为1.
  • 当我们遇见复杂的索引时: 1.先明确整体的数据值。

2.然后在进行每一步的拆分。

例:

L1 = [11, 22, [111, 222, 333, [123, 321, 666], 444]]

1.先获取666所在的第一层小列表

print(L1[2])

输出结果: 1655711240523.png

  • 上列步骤拆分
L2 = L1[2]  # 将索引取值绑定给L2
print(L2)   # 输出L2获取列表

输出结果: 1655711240523.png 2.在获取666所在的第二层小列表

print(L1[2][3])

输出结果: 1655711982251.png

  • 上列步骤拆分
L2 = L1[2]
L3 = L2[3]
print(L3)

输出结果: 1655711982251.png

3.最后获取666所在的最后一层小列表

print(L1[2][3][2])

输出结果: 1655711845237.png

  • 上述步骤拆分
L2 = L1[2]
L3 = L2[3]
L4 = L3[2]

输出结果: 1655711845237.png 注:熟练之后为了便捷一步完成

字典(dict)

  • 能够存取多个数据,并且能够方便的获取整体或者局部。并且数据具有对于解释。

基本使用

  • info_dict = {'姓名': 'tom', '年龄': 21, '爱好': 'mv'}

描述

  • 大括号括起来,内部可以存放多个数据。数据的组织形式是K:V键值对 1.K是对V的描述性性质的信息 一般是字符串。

2.V是真实的数据值,可以是任意数据类型。

按K取值

info_dict = {'姓名': 'tom', '年龄': 21, '爱好': 'mv'}

注:字典取值:字典是无序的,所以无法使用索引取值。可以使用按K取值。

info_dict = {'姓名': 'tom', '年龄': 21, '爱好': 'mv'}
print(info_dict['姓名'])
print(info_dict['年龄'])
print(info_dict['找不到'])

输出结果:

1655714189539.png

  • 我们可以看到我们输出了姓名和年龄,但是第三行代码无法输出。因为K不存在就会报错。

练习

data = {'name':'jason','others':[111, 222, {'a1':'嘿嘿','a2':'哈哈','a3':[123,{'name':'jason1','age':18}]}]}
print(data['others'][2]['a3'][1]['age'])

步骤:

  • 1.先获取大列表
l1 = data['others']
print(l1) 

输出结果: 1655714722102.png

  • 2.获取大列表中的字典
l1 = data['others']
d1 = l1[2]
print(d1) 

输出结果: 1655714974677.png

  • 3.获取字典的值
l1 = data['others']
d1 = l1[2]
l2 = d1['a3']
print(l2)  

输出结果: 1655715127425.png

  • 4.获取列表的数据
l1 = data['others']
d1 = l1[2]
l2 = d1['a3']
l3 = l2[1]
print(l3)

输出结果: 1655715200393.png

  • 5.按k取值
l1 = data['others']
d1 = l1[2]
l2 = d1['a3']
l3 = l2[1]
print(l3['age'])

输出结果: 1655715346005.png 注:上述步骤合成一步

print(data['others'][2]['a3'][1]['age'])

输出结果: 1655715200393.png

布尔值(bool)

本质

  • 用来表示事物是否可行,是否正确,是否合理。(只有两个值)

基本使用

is_right = True    # 真  可以    正确
is_delete = False  # 假  不可以  错误

描述

  • 布尔值虽然看起来很少见很简单,但是是程序中最多,使用频率最高的。存储布尔值的名字一般是使用is开头。

布尔值类型转换

  • 程序中的所有数据类型都可以转成布尔值
  • 布尔值中为False的数据有:

0 ; None ; 空字符串 ;空列表 ;空字典 ···

  • 除上述以外的所有数据对于布尔值都是True 注:所有的编程语言都有布尔值,只不过关键字和值可能有所变化。

元组(tuple)

本质

  • 能够存储多个数据,并且获取局部或者整体时很方便

基本使用

L1 = (111, 222, 333)

描述

  • 小括号括起来,内存可以存放多个数据值,数据值之间彼此用逗号隔开。数据值可以是任意数据类型。

作用

  • 一般用于存储一些只能看不能改的数据

与列表(list)的区别

  • 与列表的区别在于元组内数据值不能"直接修改" 而列表可以。所以元组又被称为不可变的列表。
  • 对比:
列表:
l1 = [11, 22, 33]
print(l1[0])
l1[0] = 'jason' 
print(l1)  

输出结果: 1655722554278.png

元组:
t1 = (11, 22, 33)
print(t1[0])
t1[0] = 'tony'  
print(t1)

输出结果: 1655722686148.png 注:报错是因为元组索引0重新绑定数据值tony。

集合(set)

本质

  • 集合只用于去重和关系运算 1.去重:自动去除重复的数据。

2.关系运算:判断两个集合之间数据的关系。

基本使用

L1 = {1,2 ,3 ,4 ,5}

定义空集合

  • 不使用关键字不能被定义。
d1 = {}
d2 = {}
print(type(d1))
print(type(d2))

输出结果: 1655723910384.png 未被定义。

  • 必须使用关键字才能被定义。
d3 = set()
print(type(d3))

输出结果: 1655724064988.png 被定义。

与用户交互

输入

  • 对计算机输入信息
input() # 获取用户输入

输入:

name = input('输入用户名:')
print(name)

输出结果: 1655725036575.png

输出

  • 计算机向外界输出内容
print() # 打印数据值

输入:

print(123)  # 括号内可以直接放数据值

输出结果: 1655725798301.png 输入:

name= 'jason'
print(name)  # 括号内也可以放名字

输出结果: 1655726127580.png 输入:

print(123, 321, 323)  # 括号内也可以一次性打印多个值

输出结果: 1655726184484.png

格式化输出

  • 在python中如果要占位,则需要使用占位符 1.%s:支持所有类型的数据替换

输入:

info = "亲爱的%s你好!你%s月的话费是%s,余额是%s"
print(info % ('tom', 6, 28, 34.6))

输出结果: 1655727027423.png 2.%d 只支持数字的占位

输入:

info = "亲爱的%d你好!你%d月的话费是%d,余额是%d"
print(info % (123, 6, 28, 36.4))

输出结果: 1655727302101.png 错误输出:

1655727202796.png

  • 注 :特殊的:产生固定位数的数据,不够的位数用0填充 例:输入:
print('%08d' % 1111)   #补充位置,用0填充 

输出结果: 1655727562002.png

基本运算符

算数运算符

加       +
减	-
乘   	*
除   	/
整除     //
取模     %
幂指数   **(次方)
  • 变种情况(简写提高办公效率)
x = 10
x = x + 100  # x += 100
x = x - 10   # x -= 10
x = x * 10   # x *= 10
x = x / 10   # x /= 10

比较运算符

==   等于
!=   不等于

多种赋值符号

链式赋值

x = 10
y = x
z = y
方式:
x = y = z = 10

交叉赋值

m = 999
n = 100
方式1:利用中间变量
t = m
m = n
n = t
print(m, n)
方式2:交叉赋值
m, n = n, m
print(m, n)

解压赋值

  • 赋值符号的左边至少有两个及以上的名字,才能称之为解压赋值。
name1, name2, name3 = name_list

1.上述操作需要保证左边的名字和右边的数据值,个数一致。

a, b = name_list
a, b, c, d, e = name_list

特殊情况:带解压的数据非常的多。

l1 = [11, 22, 33, 44, 55, 66, 77, 88, 99]

输入:

a, b, *c, d = l1
print(a)  
print(b)  
print(c) 
print(d)  

输出结果:

1655729313423.png 输入

*c, a, b = l1
print(a)
print(b)
print(c)

输出结果: 1655729410890.png

  • 在解压赋值的时候会自动将多余的数据值组织成列表赋值给星号后面的变量名。

小练习

  • 获取用户信息并打印下列格式
------------ info of XXX -----------
   Name  : XXX
   Age   : XXX
   gender : XXX
   Job   : XXX 
   ------------- end -----------------

输入代码:

name = input('姓名:')
age = input('年龄:')
gender = input('性别:')
job = input('职业:')
print("---------info of xxx---------")
print("name :" + name)
print("age :" + age)
print("gender :" + gender)
print("job :" + job)
print("-----------  end  ----------- ")

输出结果: 1655735374419.png

  • 订正:
    # 1.格式化输出:提前准备好文本
    info = """
    ------------ info of %s -----------
        Name  : %s
        Age   : %s
        gender : %s
        Job   : %s 
    ------------- end -------------------
    """
    # 2.获取用户数据
    name = input('please input your name>>>:')
    age = input('please input your age>>>:')
    gender = input('please input your gender>>>:')
    job = input('please input your job>>>:')
    # 3.格式化输出
    print(info % (name, name, age, gender, job))