目录
列表
元组?
大数据Python流程控制和循环结构
字典?
集合
列表
所谓列表就是把一堆数据放在一种特定的容器中,这个容器就称为列表,每个数据叫做元素,每个元素独有一个索引来表示它在列表中的位置。
注:列表有序,可更改,允许重复元素。
创建列表
方法一:使用[]直接创建列表
a = [1,2,3,4,5]
方法二:使用list()函数创建
a = '12345'
print(list(a))
结果
['1', '2', '3', '4', '5']
列表中的元素
列表是Python序列的一种,可以使用index索引访问列表中的某个元素,也可以使用切片访问列表中的一组元素。
使用索引访问:listname[i]
其中,listname 表示列表名字,i 表示索引值。列表的索引可以是正数,也可以是负数。
使用切片访问:listname[start : end : step]
其中,listname 表示列表名字,start 表示起始索引,end 表示结束索引,step 表示步长。
元组?
Python中一个重要的序列结构,和列表类似,元组也是由一系列按特定顺序排序的元素组成。
注:元组一旦被创建,元素不可更改,是不可变序列。
创建元祖
方法一:使用()直接创建元祖
s = '你好世界'
l = ['你好世界']
n = 123
f = 1.134
t = ('你好世界',)
print(type(s))
print(type(l))
print(type(n))
print(type(f))
print(type(t))
结果:
<class 'str'>
<class 'list'>
<class 'int'>
<class 'float'>
<class 'tuple'>
这样表示的话元组中至少有两个元素才能够显示元组类型,否则只是单纯的字符类型。
t = ('http://www.daidu.com0','hello world',1,1.5,[2,'a'],('a','b'))
print(t)
print(type(t))
结果:
('http://www.daidu.com0', 'hello world', 1, 1.5, [2, 'a'], ('a', 'b'))
<class 'tuple'>
方法二:使用tuple()函数创建
将字符串转化为元组
t1 = tuple('你好')
print(t1)
结果:
('你', '好')
注:如果字符串中只有一个元素,则得出结果后默认在该元素后面加一个逗号。
t1 = tuple('你')
print(t1)
结果:
('你',)
将列表转化为元组
list1 = ['python','jabaweb','ailixiya']
t2 = tuple(list1)
print(t2)
结果:
('python', 'jabaweb', 'ailixiya')
将字典转化为元组:
dict1 = {'name':'zhangsan','age':17}
t3 = tuple(dict1)
print(t3)
结果:
('name', 'age')
创建空元组
print(tuple())
结果:
()
注:元祖可以存储整数,实数,字符串,列表,元组等任何类型的数据,在同一个元组中,数据类型多样且没有个数限制。
访问元组中的元素
可以使用index索引访问元组中的某个元素(得到的是一个元素的值),也可以使用切片访问元组中的一组元素(得到的是一个新的子元组)
方法一:
使用索引访问元组:tuplename[i]
url = 'http://www.daidu.com0'
print(url[1])
print(url[-1])
结果:
t
0
访问单个元素
其中,tuplename表示元组名字,i 表示索引值。元组的索引可以是正数,也可以是负数。
方法二:?
使用切片访问元组:tuplename[start:end:step]
其中,tuplename 表示源名字,start 表示起始索引,end 表示结束索引,step 表示步长。
url = 'http://www.daidu.com0'
print(url[4:11])
print(url[4:11:2])
print(url[-6:])
结果:
://www.
:/w.
u.com0
元组修改元素
方法一:对元组变量进行重新赋值
t = (1,2,3,4,5)
print(t)
t = (5,5,5,5,5)
print(t)
结果:
(1, 2, 3, 4, 5)
(5, 5, 5, 5, 5)
方法二:使用+的方法拼接元组,向元组中添加新元素
t1 = (1,2,3,4,5)
t2 = ('zhangsan','lisi','wangwu')
t3 = t1 + t2
print(t3)
结果:
(1, 2, 3, 4, 5, 'zhangsan', 'lisi', 'wangwu')
元组删除元素
使用del关键字删除
del(t3)
print(t3)
结果
NameError: name 't3' is not defined. Did you mean: 't1'?
注:一般情况下Python自带的垃圾回收功能会自动销毁不用的元组。
大数据Python流程控制和循环结构
流程控制
按照执行流程划分,Python程序可分为3大结构:
顺序结构:让程序按照从头到尾的顺序依次执行每一条代码,不重复执行,也不跳过
选择结构:也称分支结构,可以跳过没用的程序,有选择性的执行有用的代码
循环结构:不断重复执行同一段代码
if else条件语句
money = 100
if money >500:
print('有钱')
print('穷鬼')
结果
穷鬼
money = int(input('请输入你所拥有的财产:'))
if money > 500:
print('吃火锅')
else:
print('康师傅方便面')
结果:
请输入你所拥有的财产:100
康师傅方便面
money = int(input('请输入你所拥有的财产:'))
if money > 500:
if money >1000:
print('购买马克思主义思想套餐')
else:
print('吃火锅')
else:
print('康师傅方便面')
结果:
请输入你所拥有的财产:550
吃火锅
money = int(input('请输入你所拥有的财产:'))
if money >= 1000:
print('我的上帝,有什么能为您效劳的吗?')
elif money >= 500:
print('哦,欢迎可爱的客人采购')
elif money >= 100:
print('兄弟,进来随便坐坐')
elif money < 100:
print('穷鬼,圆润的离开!')
结果:
请输入你所拥有的财产:99
穷鬼,圆润的离开!
while循环语句
在Python中,while循环和if条件分支语句类似,即在条件(表达式)为真的情况下,会执行相应的代码块,只要条件为真,就会一直重复执行。
i = 1
s = 0
while i <= 100:
s = s + i
i += 1
print(s)
结果:
5050
break和continue
在执行while循环或for循环时,只要循环条件满足,程序将会一直执行循环体,但Python中存在两种强制终止循环的方法。
方法一:
continue语句,可以跳过执行本次循环体中剩余的代码,转而执行下一次循环
while True:
content = input('请输入您的内容:')
if content == 'q':
break
print('发送给存在x:',content)
结果:
请输入您的内容:你好!
发送给存在x: 你好!
请输入您的内容:q
退出进程
break语句,可以完全终止当前循环
for循环语句
常用于遍历字符串,列表,元组,字典,集合等序列类型,逐个获取序列中的各个元素。
九九乘法表:
for i in range(1,10):
for j in range(1,i+1):
print('{}*{}={}\t'.format(i,j,i*j),end='')
print()
结果
1*1=1?? ?
2*1=2?? ?2*2=4?? ?
3*1=3?? ?3*2=6?? ?3*3=9?? ?
4*1=4?? ?4*2=8?? ?4*3=12?? ?4*4=16?? ?
5*1=5?? ?5*2=10?? ?5*3=15?? ?5*4=20?? ?5*5=25?? ?
6*1=6?? ?6*2=12?? ?6*3=18?? ?6*4=24?? ?6*5=30?? ?6*6=36?? ?
7*1=7?? ?7*2=14?? ?7*3=21?? ?7*4=28?? ?7*5=35?? ?7*6=42?? ?7*7=49?? ?
8*1=8?? ?8*2=16?? ?8*3=24?? ?8*4=32?? ?8*5=40?? ?8*6=48?? ?8*7=56?? ?8*8=64?? ?
9*1=9?? ?9*2=18?? ?9*3=27?? ?9*4=36?? ?9*5=45?? ?9*6=54?? ?9*7=63?? ?9*8=72?? ?9*9=81??
pass关键字
Python中的pass时空语句,目的时为了保持程序结构的完整性,不做任何事情,用做占位语句。
a = 50
if a > 50:
pass
用于占位防止程序报错
字典?
一种无序的、可变的序列,它的元素以”键值对(key-value)“的形式存储。
字典类型是Python中唯一的映射类型,将各元素对应的缩影称之为键(key),各个键对应的元素称之为值(value),键及其关联的值称为”键值对“
注:“映射”指元素之间对应的关系,指通过一个元素,可以唯一找到另一个元素。
创建字典
方法一
使用{}直接创建列表,字典中的每个元素都包含两个部分,键和值。
score = {'python':12,'java':123,'web':1234}
print(score)
print(type(score))
结果:
{'python': 12, 'java': 123, 'web': 1234}
<class 'dict'>
方法二
通过fromkeys()方法创建字典
d1 = ['name','age','action']
d1 = dict.fromkeys(d1,60)
print(d1)
结果:
{'name': 60, 'age': 60, 'action': 60}
方法三
通过dict()映射函数创建字典
demo1 = [('name','liuxiansheng'),('age',12),('gender','男')]
print(dict(demo1))
结果
{'name': 'liuxiansheng', 'age': 12, 'gender': '男'}
访问字典
列表和元组通过下表来访问元素,字典则通过键来访问对应的值。
方法一
dictname[key]
其中,dictname表示字典变量的名字,key表示键名。(键必须存在,否则报错)
方法二
get()
当指定的键不存在是,get()方法不会抛出异常
字典添加键值对
直接给不存在的key赋值即可
d1 = {'语文':87}
print(d1)
d1['数学'] = 87
print(d1)
结果
{'语文': 87}
{'语文': 87, '数学': 87}
字典修改键值对
键的名字不能修改,只能修改值,直接为键添加新的值就可以覆盖掉原有的值。
d1['数学'] = 100
print(d1)
结果
{'语文': 87, '数学': 100}
字典删除键值对
del d1['语文']
print(d1)
结果
{'数学': 100}
判断字典中是否存在指定键值对
d1 = {'语文': 87, '数学': 100}
print('jave' in d1)
print('jave' not in d1)
结果
False
True
字典中常用的方法
key():返回字典中所有的键
values():返回字典中所有的值
items():返回字典中所有的键值对
d1 = {'语文': 87, '数学': 100}
print(d1.keys())
print(d1.values())
print(d1.items())
结果
dict_keys(['语文', '数学'])
dict_values([87, 100])
dict_items([('语文', 87), ('数学', 100)])
集合
和数学中的集合概念一样,用来保存不重复的元素,即集合中的元素都是唯一的。
注:set集合是无序的,每次输出是元素的排序可能不同。
创建集合
和字典类似,将所有元素放在{}中,相邻元素用逗号分割。
方法一
使用{}直接创建集合
set1 = {1,4,6,('jave',12),13,544,'v'}
print(set1)
print(type(set1))
结果
{544, 1, 'v', 4, 6, ('jave', 12), 13}
<class 'set'>
方法二
使用set()函数创建集合
set2 = set('你好吗?')
set3 = set(('hello world','你好'))
set4 = set(['nihao',2])
print(set2)
print(set3)
print(set4)
结果
{'你', '吗', '?', '好'}
{'你好', 'hello world'}
{2, 'nihao'}
访问集合中的元素
注:因为集合中的元素无序,无法像列表一样使用下标访问,所以最常用的方法是使用循环结构将集合中的数据逐一读取出来。
set1 = {1,4,6,('jave',12),13,544,'v'}
for i in set1:
print(i)
结果:
544
1
('jave', 12)
4
6
v
13
集合添加元素
方法一:add()
setname.add(element);
setname表示要添加元素的集合,element表示要添加元素的内容
注:使用add()方法添加元素,只能是数字,字符串,元组或者布尔类型(True和False)值,不能添加列表,字典,集合这类可变的数据。
set1 = {1,4,6,('jave',12),13,544,'v'}
set1.add(('jave','web'))
print(set1)
结果
{544, 1, 4, 6, 'v', ('jave', 12), 13, ('jave', 'web')}
添加字符串时,如果有多个就以元组的形式添加进去
方法二
upda
set1 = {1,4,6,('jave',12),13,544,'v'}
set1.update(('集合','字典','列表'))
print(set1)
结果
{1, 4, 6, 13, ('jave', 12), '字典', '列表', 544, '集合', 'v'}
集合删除元素
方法一
remove()
注:如果被删除的元素不在集合,会抛出错误
set1 = {1,4,6,('jave',12),13,544,'v'}
set1.remove(1)
print(set1)
set1.remove(2)
print(set1)
结果
{544, 'v', 4, ('jave', 12), 6, 13}
Traceback (most recent call last):
? File "C:\Users\LENOVO\PycharmProjects\pythonProject 1\3.day.py", line 337, in <module>
? ? set1.remove(2)
KeyError: 2
方法二
discard()
注:此方法不会抛出任何错误
set1 = {1,4,6,('jave',12),13,544,'v'}
set1.discard(1)
print(set1)
set1.discard(2)
print(set1)
结果
{('jave', 12), 544, 4, 6, 13, 'v'}
{('jave', 12), 544, 4, 6, 13, 'v'}
方法三
pop()
set1 = {1,4,6,('jave',12),13,544,'v'}
set1.pop()
print(set1)
结果
{1, 'v', 4, 6, ('jave', 12), 13}
注:pop随机删除集合中的一个元素
集合运算
交集&,并集|,差集-,对称差集^
set1 = {1,2,3,4}
set2 = {3,4,5,6}
print(set1 & set2)
print(set1 | set2)
print(set1 - set2)
print(set2 - set1)
print(set1 ^ set2)
结果
{3, 4}
{1, 2, 3, 4, 5, 6}
{1, 2}
{5, 6}
{1, 2, 5, 6}
?
|