基本数据类型、用户交互、格式化输出、基本运算符、多种赋值符号
一、基本数据类型
1.整型(int)
1.1.本质
用来存储整数,并能够获取
1.2.基本使用
a = 22
1.3.语言描述
右边是数据值,左边是绑定的名字
# a = 22
# print(a)
2.浮点型(float)
2.1.本质
用来存储小数,并且能够获取
2.2.基本使用
a = 1.57
2.3.语言描述
右边是数据值,左边是绑定的名字
# a = 2022.06
# print(a)
3.字符型(str)
3.1.本质
用来存储文本,并且能够获取
3.2.基本使用
a = '橘子'
b = "苹果"
c = '''西瓜'''
d = """甘蔗"""
3.3.语言描述
右边是引号引起来的部分,左边是绑定的名字
# a = '橘子'
# b = "苹果"
# c = '''西瓜'''
# d = """甘蔗"""
# print(a)
# print(b)
# print(c)
# print(d)
3.4.为什么定义字符串需要多种方式?
定义字符串时可能内部同样需要使用引号,而字符串会在第一个引号之后找到相同的引号会自动闭合,则若单一引号时会冲突报错。
4.列表(list)
4.1.本质
能够存储多个数据,并能够方便地获取整体或全部
4.2.基本使用
a = [111,222,333,444,555,666]
4.3.语言描述
中括号括起来,内部可存放多个数据类型的数据值,且数据值之间用逗号隔开
b = ['橘子', 22, 1.57, '安徽池州']
# print(b)
4.4.索引取值
fruit_list = ['甘蔗', '西瓜', '提子', '葡萄']
'''索引取值:通常是从0开始往后数值,与一般生活数值从1数有所不同'''
# print(fruit_list[2]) # 提子
# print(fruit_list[5]) # 报错,索引超出范围会直接报错
l1 = ['你好', '我是橘子', [111, 222, ['过来啊', '打我啊', ['hehe', 'haha', 'eeee']]]]
'''遇到较为复杂构造的数据,先明确整体有几个数据值,然后进行拆分'''
# print(l1[2]) # [111, 222, ['过来啊', '打我啊', ['hehe', 'haha', 'eeee']]]
# l2 = l1[2]
# print(l2) # [111, 222, ['过来啊', '打我啊', ['hehe', 'haha', 'eeee']]]
# print(l2[2]) # ['过来啊', '打我啊', ['hehe', 'haha', 'eeee']]
# l3 = l2[2]
# print(l3) # ['过来啊', '打我啊', ['hehe', 'haha', 'eeee']]
# print(l3[2]) # ['hehe', 'haha', 'eeee']
# l4 = l3[2]
# print(l4) # ['hehe', 'haha', 'eeee']
# print(l4[2]) # eeee
# l5 = l4[2]
# print(l5) # eeee
5.字典(dict)
5.1.本质
能够存储多个数据,能够方便获取整体或布局,且具有对数据的解释
5.2.基本使用
a = {'name': '橘子', 'age': 18}
5.3.语言描述
大括号括起来,内部可存放多个数据值,且数据的组织形式是K:V键值对
K:对V描述性性质的信息,一般是字符串
V: 是真实的数据值,可以是任意的数据类型
5.4.按K取值
info_dict = {'name': '橘子', 'age': 18, 'hobby': '看电影吃吃吃'}
'''字典取值是使用按K取值,字典无法使用所以是因为字典是无序的'''
# print(info_dict['name']) # 橘子
# print(info_dict['hobby']) # 看电影吃吃吃
# print(info_dict['height']) # 报错,K不存在
5.5.取值练习
data = {
'name': 'jason',
'others': [
111,
222,
{
'a1': '嘿嘿',
'a2': '哈哈',
'a3': [
123,
{
'name': 'jason1',
'age': 18
}]}]}
# 1.先获取大列表
l1 = data['others']
# print(l1) # [111, 222, {'a1': '嘿嘿', 'a2': '哈哈', 'a3': [123, {'name': 'jason1', 'age': 18}]}]
# 2.获取大列表中的字典
d1 = l1[2]
# print(d1) # {'a1': '嘿嘿', 'a2': '哈哈', 'a3': [123, {'name': 'jason1', 'age': 18}]}
# 3.获取字典的值
l2 = d1['a3']
# print(l2) # [123, {'name': 'jason1', 'age': 18}]
# 4.获取列表的数据
l3 = l2[1]
# print(l3) # {'name': 'jason1', 'age': 18}
# 5.按k取值
# print(l3['age'])
"""上述可以简写成一步"""
print(data['others'][2]['a3'][1]['age'])
6.布尔型(bool)
6.1.本质
用来描述事物是否可行,是否正确,是否合理
总共只有两个值
6.2.基本使用
is_right = True # 真 可以 正确
is_delete = False # 假 不可以 错误
6.3.详细介绍
布尔值是最简单很少见,但在程序中是最多,也是使用频率最高
定义布尔值的名字一般使用is开头
6.4.布尔值类型转换
程序中所有数据类型都可以转成布尔值
为False的数据类型有:0 、None 、 空字符串 、 空列表 、 空字典...除此之外的所有数据都是为True
6.5.所有编程语言都有布尔值,但是关键字和值可能有所不同
tyoeof true
'boolean' # js中就不一样
7.元组(tuple)
7.1.本质
能够存储多个数据并且能够方便获取整体或布局
与列表的区别在于元组内的数据值是不能直接修改的(外号:不可改变的列表),二列表是可以的
7.2.作用
一般存储一些只能看不能修改的信息
7.3.基本使用
a = (1, 2, 3)
7.4.语言描述
小括号括起来,内部可以存放多个任意类型的数据值,数据值之间用逗号隔开
7.5.与列表对比
a = [1, 2, 3]
b = (1, 2, 3)
# print(a[0])
# print(b[0])
# a[0] = 'hahaha' # 将列表索引0重新绑定新的数据值
# print(a) # ['hahaha', 2, 3]
# b[0] = 'hahaha' # 将元组索引0重新绑定新的数据值,报错
# print(b)
8.集合(set)
8.1.本质
集合只能用于去重和关系运算
去重:自动去除重复的数据
关系运算:判断两个集合之间的数据值的关系
8.2.基本使用
a = {1, 2, 3}
8.3.定义空集合
a = {} # 大括号默认是看成字典的
b = {}
print(type(a)) # dict
print(type(b)) # dict
c = set() # 必须使用关键字才能定义空集合
print(type(c))
二、与用户交互
1.输入
向计算机传递数据
input() # 获取用户输入的数据值
eg:
name = input('请输入您的用户名:')
print(name)
"""
1.先获取用户输入的数据
2.再赋值给左边的名字name
3.之后就可以通过名字name使用用户输入的数据
4.input获取到的用户输入都会转成字符串类型
"""
2.输出
向计算机输出信息
print() # 打印数据值
print(123) # 括号内可以直接放数据值
name = '橘子'
print(name) # 括号内可放名字
print(123,321,323) # 括号内也可以一次性打印多个数据值
'''
换行符:\n \r \r\n
最早起的换行是 \r\n
后面简化成了 \n \r(不同的操作系统可能会有变化)
'''
PS:python2和python3的输入和输出区别:
1)Python2的输入:
input()只支持正确的数值类型,不接受字符串的输入
raw_input():可接受数值和字符串,输出的类型均为字符型
2)Python2的输出:
python2中输出使用print()
3)Python3的输入:
python3中input接受到的数值不能直接进行大小比较
python3在接受时进行类型转换,方可比较大小
4)Python3的输出:
python3中输出只能小括号print()
三、基本运算符
1.算术运算符
加 + +=
减 - -=
乘 * *=
除 / /=
加 // //=
取模 % %=
幂指数 **(次方) **=
eg:
x = 10
x = x + 10 # x +=10
x = x - 10 # x -=10
x = x * 10 # x *=10
x = x / 10 # x /=10
x = x // 10 # x //=10
x = x % 10 # x %=10
x = x ** 10 # x **=10
2.比较运算符
等于 ==
不等于 !=
大于 >
小于 <
小于或等于 <=
大于或等于 >=
四、多种赋值符号
1.链式赋值
同一个值同时赋值给多个变量名
eg:
x = 10
y = x
z = y
x = y = z =10
2.交叉赋值
将m与n的数据值交换
eg:
1) m = 6
n = 8
temp = m
m = n
n = temp
2)m = 6
n = 8
m,n=n,m
3.解压赋值
将列表中的多个值取出来依次赋值给多个变量名
eg:
nums = [1,2,3,4]
a = nums[0]
b = nums[1]
c = nums[2]
d = nums[3]
解压赋值:复制符号左边的至少有两个及以上的名字才能够 称为解压赋值
等号左边的变量名个数必须与右边包含值的个数必须相同
若只想取开头和结尾的几个值可以用*_匹配,适合解压数据非常多的时候
eg:
nums = [1, 2, 3, 4]
a, b, *_ = nums # *_在解压赋值时会自动将多余的数据值组织成 列表赋值给*后的变量名
print(a) # 1
print(b) # 2
print(a, b, _) # 可打破个数限制
五、格式化输出
info = "亲爱的xxx你好!你xxx月的话费是xxx,余额是xxx"
python中想要站位则用占位符
方式1:%S
支持所有的数据类型(使用最多)
# info1 = "亲爱的%s你好!你%s月的话费是%s,余额是%s"
# print(info1 % ('橘女士', 5, 19, 5))
# print("亲爱的%s你好!你%s月的话费是%s,余额是%s" % ('小橘', 5, 39, -15))
方式2:%d
只支持给数字站位
# info2 = "亲爱的%s你好!你%s月的话费是%s,余额是%s"
# print(info2 % ('橘女士', 5, 19, 5))
# print("亲爱的%s你好!你%s月的话费是%s,余额是%s" % ('小橘', 5, 39, -15))
可产生固定位数的数据
# print('%06d' % 222)
作业
info = "------------ info of %s ------------"
user = input("请输入该表名称:")
name = input("请输入你的姓名:")
age = input("请输入你的年龄:")
gender = input("请输入你的性别:")
job = input("请输入你的工作: ")
print(info % user)
print('Name:' + name)
print('Age:' + age)
print('gender:' + gender)
print('Job:' + job)
print("print------------- end -----------------")
python2和python3的输入和输出区别:
1)Python2的输入:
input()只支持正确的数值类型,不接受字符串的输入
raw_input():可接受数值和字符串,输出的类型均为字符型
2)Python2的输出:
python2中输出使用print()
3)Python3的输入:
python3中input接受到的数值不能直接进行大小比较
python3在接受时进行类型转换,方可比较大小
4)Python3的输出:
python3中输出只能小括号print()