数据类型
字符串(重要)
作用:一般记录描述性性质的数据
方式1:
name = 'ly'
方式2:
name = "ly"
方式3:
name = '''ly'''(如何三引号左边具有赋值符号和变量名,它就是字符串)
方式4:
name = """ly"""(如何三引号左边具有赋值符号和变量名,它就是字符串)
# 只要是写在引号里面的数据都是字符串
为什么使用这么多定义的方式?
s = '洋哥说:'好好学习才能拿高薪'' #这个是错误的
s = '洋哥说:"好好学习才能拿高薪"' #正确的
s1 = "洋哥说:'好好学习才能拿高薪'" #正确的
print(s)
洋哥说:"好好学习才能拿高薪"
print(s1)
洋哥说:'好好学习才能拿高薪'
# 字符串拼接
name = 'ly'
age = '18'
print(name + age)
# 拼接字符串,拼接的数据必须都是字符串
print(1+1) # 2
print(name * 10) # lylylylylylylylylyly
列表list
作用:可以存放多个数据,并且方便取出
定义:使用中括号括起来,里面可以存放多个数据,数据与数据之间用逗号隔开,数据可以是任意数据类型
# 定义列表
name_list = ['ly', 'jason', 'tom', 'qq', 'kevin']
print(type(name_list))
print(name_list)
# 列表取值需要使用索引取值(索引取值从0开始)
print(name_list[1])#jason
print(name_list[3])#qq
print(name_list[0])#ly
# 考题
l = ['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(l[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', '洋哥最帅']}]
}
# 取值 洋哥最帅
d2 = d1['addr'] # ['中国', '上海', {'hobby': ['read', 'music', 'tea', '洋哥最帅']}]
# 取值 洋哥最帅
d3 = d2[2] # {'hobby': ['read', 'music', 'tea', '洋哥最帅']}
# 取值 洋哥最帅
d4 = d3['hobby'] # ['read', 'music', 'tea', '洋哥最帅']
# 取值 洋哥最帅
d5 = d4[3]
print(d5)
# 把以上四步简化为一步
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)) #00000111
print(s2 % ('ly', 2)) #00000002
print(s2 % ('ly', 666666)) #00666666
print(s2 % ('ly', 9999999999999)) #9999999999999
基本运算符
1. 算术运算符
+
-
*
/
a = 13
# print(a + 1)
# print(a - 1)
# print(a * 1)
# print(a / 1)
print(a // 4) # 只要整数部分3
print(a % 4) # 只要余数1
print(3 ** 4) #81
2. 比较运算符
==
!=
>
>=
<
<=
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, *x, name5 = name_list
print(name1) #'ly'
print(x) #'tom', 'jason', 'kevin', 'kevin', 'kevin', 'kevin'
print(x[0]) #'tom'
print(name5) #'kevin'