python的数据类型
一字符串型str
作用:一般记录描述性质的数据,如name,age,接下来我们定义几个字符串,
name = 'LW' salary = "2500" hobby = '''reading''' (可以用单,双,三引号表示字符串,只要左边有变量名和赋值符号)
那么为什么要使用多定义的方式呢,因为有的时候我们需要在语境中用到引号作为一个说话的环境,比如在书本上人说话都是用冒号和双引号括起来的
洋哥说:“学习好才能拿高薪”
输出的结果就把双引号当作文本输出出来了
字符串也可以用+拼接
name = 'LW'
age = '18'
print(name + age) # 拼接字符串,拼接的数据必须都是字符串
print(1+1) # 输出结果是2
print(name * 5) # 输出结果是LWLWLWLWLW,就是把name的变量值LW打印5次二
二列表list
作用:可以存放多个数据,并且可以取出来使用,
定义:使用中括号括起来,里面可以存放多个数据,数据与数据之间用逗号隔开,数据可以是任意数据类型
name_list = ['LRH', 'jason', 'tom', 'qq', 'kevin']
# 列表取值需要使用索引取值(索引取值从0开始)
print(name_list[0])
print(name_list[1])
print(name_list[2])
输出的结果下图
那如果是在列表里面放嵌套多个列表然后取值呢,下面这个例子我们要单独取出洋哥最帅
name= ['ly', 18, 'info', ['music', 'read', 'play', ['addr', ['xj', '洋哥最帅']]]]
# 问洋哥最帅在列表的第几个位置,从最外层开始一层一层取
l1 = l[3] # ['music', 'read', 'play', ['addr', ['xj', '洋哥最帅']]]
# 问洋哥最帅在列表的第几个位置
l2 = l1[3] # ['addr', ['xj', '洋哥最帅']]
# 问洋哥最帅在列表的第几个位置
l3 = l2[1] # ['xj', '洋哥最帅']
l4 = l3[1]
print(l4)
以上四步可以简化成一步,
print(name[3][3][1][1])
三元组tuple
元组实际中用的比较少,只要知道就可以
作用:可以存放多个数据,并且方便取出
定义:小括号括起来,里面可以存放多个元素,元素与元素之间使用逗号隔开,
'''元祖就是不可变的列表,其他都和列表一样'''
t = (1, 2, 3, 4) # 取值也是从索引0开始
四字典dict
定义:字典就是使用大括号括起来,里面可以存放多个数据,数据与数据之间使用逗号隔开,
数据格式是K:V键值对的形式 (key:value)
k:是描述性信息,是对value的解释
v:是真正的数据,相当于变量值
字典里面的数据类型可以是任意数据类型
name = 'ly'
d = {'name': 'ly', 'age': 18, 'gender': 'male'}
取值
print(d[0]) # 字典不支持索引取值
字典取值需要借助于K,
print(d['name'])
print(d['age'])
print(d['gender'])
d1 = {
'name': 'ly',
'addr': ['中国', '上海', {'hobby': ['read', 'music', 'tea', '洋哥最帅']}]
}
# 取值 洋哥最帅
print(d1['addr'][2]['hobby'][3])
五布尔类型
作用:用来记录真假两种状态
定义:
True: 表示 真,正确,成立 true
False:表示 假, 不正确,不成立 false
在布尔值的变量中,我们一般会使用is开头
is_ok = True
is_success = False
is_delete = True
is_alive = True
在python中,所有的数据类型都可以转为布尔值
什么是真?什么是假?
掌握什么是假就行,除此之外,都是真
值为False的有哪些?
0, None,'', {}, [], ()...
其余情况都为真
六集合
作用:用于去重,集合运算
定义:集合是用大括号括起来,里面可以存放多个元素,元素与元素之间使用逗号隔开,但是,数据形式不是K:V键值对
s = {1, 2, 3, 4}
print(s)
dict1 = {} # <class 'dict'>
# 怎么定义一个空集合
s1 = set() # set
print(type(dict1))
print(type(s1))
七与用户交互
1. 输入
s = input('请输入你要取款的金额:')
'''input接受的数据会赋值给变量'''
input接收的数据类型全都是字符串
print(s, type(s))
2. 输出
print('hello world')
输出
print('hello', 'world', 111, 222)
print(123, end='$')
print(345)
换行符
print('哈哈哈哈哈哈\n423\n423\n4234')
八格式化输出
什么是格式化输出
把一段字符串里面的某些内容替换掉之后再输出,就是格式化输出。
s = '亲爱的%s你好!你%s月的话费是%s,余额是%s'
print(s % ('ly', 12, 1000, 9999999, 10)) # 多一个不行
print(s % ('ly', 12, 1000, 9999 )) # 少一个不行
print(s % ('ly1', 10, 2000, 80000 )) # 少一个不行
s = '亲爱的%s你好!你%s月的话费是%s,余额是%s' % ('ly1', 10, 2000, 80000 )
字符串中只有一个%s的时候会怎么样?
s1 = 'hello%s'
如果只有一个占位符, 那么%后面可以不加括号
print(s1 % 'world')
%s => 占位符, 可以为所有的数据类型占位置
%d => 只能给数字类型占位
s2 = 'my name is %s, my age is %08d'
print(s2 % ('ly', 111))
print(s2 % ('ly', 2))
print(s2 % ('ly', 666666))
print(s2 % ('ly', 9999999999999))
九基本运算符
3. 增量赋值
x += 1 # x = x + 100
x -= 1
x *= 1
x /= 1
print(x)
4. 链式赋值
x = 10
y = x
z = y
print(x, y,z )
x = y = z = 10
print(x, y,z )
5. 交叉赋值
面试题: 如何交换两个变量?
1. 借助于第三个变量
tmp = m
m = n
n = tmp
print(m, n )
2. 解压赋值
m, n = n, m
print(m, n)
x, y, z = 1, 2, 3
print(x)
print(y)
print(z)
6. 解压赋值
name_list = ['ly', 'tom', 'jason', 'kevin', 'kevin', 'kevin', 'kevin', 'kevin']
name1 = name_list[0]
name2 = name_list[1]
name3 = name_list[2]
name4 = name_list[3]
print(name1)
print(name2)
print(name3)
print(name4)# name1, name2, name3, name4, name5 = name_list # 元素个数必须与变量个数一模一样# name1, name2, name3, name4 = ['ly', 'tom', 'jason', 'kevin']
print(name1)
print(name2)
print(name3)
print(name4)
多余的元素都赋值给了星号后面的变量,如果想取,通过星号后面的变量取值就行
name1, *x, name5 = name_list
print(name1)
print(x)
print(x[0])
print(name5)