Python数据类型及用户交互与运算符
数据类型之列表list
1.定义
列表,是可以通过方括号括起来,用逗号隔开的一组数据值或者元素。一个列表可以包含不同类型的元素,但通常使用时各个元素类型相同。
它的数据格式为:[list1,list2,list3,list4]
2.作用
列表的作用是一次性存储多个数据,程序员可以对这些存储的数据进行对应的操作,如:增、删、改、查。
3.基本使用
list1 = [1, 2, 3, 4, 5] # 列表内元素的数据类型为整型 [1, 2, 3, 4, 5]
list2 = ['西游记', '红楼梦', '三国演义', '水浒传'] # 列表内元素数据类型为字符串 ['西游记', '红楼梦', '三国演义', '水浒传']
print(list1)
print(list2)
4.类型描述
用中括号括起来,列表内可以存放多个数据值,数据值与数据值之间用逗号隔开,数据值可以是任意数据类型
5.索引取值
索引取值,通过字面意思我们可以理解为,通过索引的方式对列表内的数据值进行获取,列表中的每个元素都有编号值,即其索引。
索引的方式,在IT行业,数字的起始位置通常是从0开始的,按照从左往右的方式开始,第一个位置是0,第二个位置是1,以此类推,一直到N。
举个例子
name_list = ['大悲掌', '黯然销魂者', '金钟罩', '铁布衫', '降龙十八掌'] # 通过索引取值,我想拿到武林秘籍降龙十八掌
print(name_list[4]) # 从左往右,第一个位置为0,第二个位置为1,以此类推,对应的值为4,取到的值就是降龙十八掌
数据类型之字典dict
1.定义
字典是一种可变容器类型,可以存储任意类型的数据,在大多数情况下,字典存储的是描述一个物体的相关信息
2.作用
字典的作用是一次性存储多个数据,程序员可以对这些存储的数据进行对应的操作,但是它对数据做了相应的解释
3.基本使用
字典以键值对存储数据,key-value形式,键值之间使用冒号隔开,每个键值中间用逗号隔开
info_dict = {'name': '李白', 'job': '诗人', 'dynasty': '唐朝'} # 这里name是K 李白是V
4.类型描述
大括号括起来 内部可以存放多个数据 数据的组织形式是K:V键值对
K是对V的描述性性质的信息 一般是字符串
V是真实的数据值 可以是任意数据类型
5.按K取值
info_dict = {'name': '李白', 'job': '诗人', 'dynasty': '唐朝'}
print(info_dict['name']) # 李白
print(info_dict['dynasty']) # 唐朝
与列表不同的是,字典无法通过索引的方式取值,因为列表是有序的对象集合,字典是无序的对象集合,两者之间区别在于:字典是通过键(key)来存取的,列表是索引取值
键(key)必须使用不可变类型,在同一个字典中,键(key)必须是唯一的
数据类型之布尔值bool
1.定义
布尔值是逻辑值,只有两种:真(True)假(Flase),True、Flase通常情况下不会被直接引用,需要使用逻辑运算得到结果
2.作用
布尔值可以用于判断条件结果
3.基本使用
is_successfully = True # True
is_defeated = False # False
print(is_successfully)
print(is_defeated)
4.类型描述
布尔值看似很简单 很少见 其实在程序中是最多的 也是使用频率最高的
存储布尔值的名字一般使用is开头
5.布尔值类型转换
Python中所有的数据类型都可以转换成布尔值,只有0、None、空列表、空字典的布尔值为False,其余对象的值都为True
数据类型之元组tuple
1.定义
元组与列表类似,只不过是列表的中括号[]变为了小括号(),小括号内用逗号隔开多个任意数据类型的元素,元组是一个不可变的列表
2.作用
元组可以按照索引存在多个数据值,但是只能用于读取,不能用于修改;而列表是可存可取,也可以修改;如果需要只读操作,可以用元组
3.基本使用
top_list = (1, 2, 3, 4)
4.类型描述
用小括号括起来,列表内可以存放多个数据值,数据值与数据值之间用逗号隔开,数据值可以是任意数据类型
5.与列表的区别
list1 = ['洪家铁线拳', '十二路谭腿', '五郎八卦棍', '如来神掌', ]
top_list = ('东邪', '西毒', '南帝', '北丐')
print(list1[2]) # 五郎八卦棍
print(top_list[1]) # 西毒
list1[2] = '咏春拳' # 将列表索引2重新绑定数据值咏春拳
print(list1) # ['洪家铁线拳', '十二路谭腿', '咏春拳', '如来神掌']
top_list[1] = '郭靖' # 将列表索引1重新绑定数据值郭靖 直接报错!!!
数据类型之集合set
1.定义
集合,它是一个无序的,不可重复的元素序列。集合使用大括号{}将数据括起来,数据与数据之间用逗号隔开。从数据结构上看,集合与列表和元组类似,从元素上看,集合与字典比较类似,即元素不允许重复
2.作用
集合可以用于去重,关系运算
3.基本使用
st = {'python', 'java', 'C++', 'PHP'}
5.如何定义空集合
空集合只能用set()来创建,因为大括号{}是用来创建集合的,如:
st = set()
print(type(st)) # <class 'set'>
用户交互与输出格式化
1.用户交互的定义
用户交互就是人往计算机中输入数据(input)、计算机输出结果(print),从而使得计算机能够像人一样与用户沟通,交互的本质就是输入、输出
2.如何进行用户交互 输入input和输出print
3.输入:input 向计算机传递信息
在python中input会等待用户输入,用户输入任意内容都会变成字符串,然后赋值给等号左边的变量名。input接收一个参数用来向用户显示提示或说明信息
username = input('请输入您的用户名>>>:')
print(username) # 请输入您的用户名>>>:tony
4.输出:print 计算机向外界输出信息
print可以只输出一个值,也可以输出多个值,数据值之间用逗号隔开 可以直接放数据值,也可以放变量名
print(1) # 1
print('hello', 'word') # hello word
name = 'tony'
print(name) # tony
5.此外,print功能还有一个end参数,该参数的默认值为"\n"(换行),可以将end参数的值改成任何其它类型的字符,如:
print('你好', end='-')
print('狗东西') # 你好-狗东西
6.什么是格式化输出
格式化输出,就是按照格式说明所描述的文字规则进行输出
7.格式化输出的使用
info = "尊敬的XXX您好,截止到xxxx时,您的通信账户余额为xxx元。为保证您的正常通信,请您尽快充值,如已交费请忽略"
这里我们就用到了占位符的知识点
# %s占位符:可以接收任意类型的数据值
# %d占位符:只能接收数字
real = "尊敬的%s您好,截止到今日下午%s时,您的通信账户余额为%s元。为保证您的正常通信,请您尽快充值,如已交费请忽略" % ('李白', 18, 3)
print(real) # 尊敬的李白您好,截止到今日下午18时,您的通信账户余额为3元。为保证您的正常通信,请您尽快充值,如已交费请忽略
基本运算符
1.什么是运算符
举个简单的例子,4+5=9 (4和5被称为操作数,+就称为运算符)
2.运算符有哪些
算术运算符
加 +
减 -
乘 *
除 /
整除 //
取模 %
幂指数 **(次方)
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
# 让m绑定n绑定的数据值 让n帮忙m绑定的数据值
# m = n
# n = m
# print(m)
# print(n)
'''方式1:利用中间变量'''
# tmp = m
# m = n
# n = tmp
# print(m, n)
'''方式2:交叉赋值'''
m, n = n, m
print(m, n)
name_list = ['jason', 'tony', 'kevin']
# 用三个不同的名字存储三个不同的人名
# name1 = name_list[0]
# name2 = name_list[1]
# name3 = name_list[2]
'''解压赋值:赋值符号的左边至少有两个及以上的名字 才能称之为解压赋值'''
# 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) # 11
# print(b) # 22
# print(c) # [33, 44, 55, 66, 77, 88]
# print(d) # 99
*c, a, b = l1
print(a)
print(b)
今日作业
# # 1.获取用户信息并打印出下列格式
# # ------------ info-of-XXX -----------
# # Name: XXX
# # Age: XXX
# # Job: XXX
# # dynasty: xxx
# # another_name: xxx
# # production: xxx
# # ------------- end -------------------
#
#
# """变量名与数据类型分不清!!!"""
#
#
# # 1.格式化输出:提前准备好文本
#
# info = """
# ------------ info of %s -----------
# Name : %s
# Age : %s
# Job : %s
# dynasty : %s
# another_name : %s
# production : %s
#
# ------------- end -------------------
# """
# # 2.获取用户数据
#
# name = input('请输入您的姓名>>>:')
# age = input('请输入您的年龄>>>:')
# job = input('请输入您的工作>>>:')
# dynasty = input('请输入您的出生地>>>:')
# another_name = input('请输入您的别称>>>:')
# production = input('请输入您的著作>>>:')
#
# # 3.格式化输出
#
# print(info % (name, name, age, job, dynasty, another_name, production))
#
#
# # 4.输出结果
#
# # 请输入您的姓名 >> >: 李白
# # 请输入您的年龄 >> >: 999
# # 请输入您的工作 >> >: 诗人
# # 请输入您的出生地 >> >: 唐朝
# # 请输入您的别称 >> >: 诗仙
# # 请输入您的著作 >> >: 李太白集
# #
# # ------------ info-of-李白 - ----------
# # Name: 李白
# # Age: 999
# # Job: 诗人
# # dynasty: 唐朝
# # another_name: 诗仙
# # production: 李太白集
# #
# # ------------- end - ------------------
### 大鹏一日同风起,扶摇直上九万里
### 假令风歇时下来,犹能簸却沧溟水
——摘自《上李邕》 作者:李白
### 路漫漫其修远兮,吾将上下而求索 ###