多维列表
>>> x=[2,3,4,5,'a']
>>> y=['b','c']
>>> x[1]=y
>>> q=[3,4,x]
>>> q
[3, 4, [2, ['b', 'c'], 4, 5, 'a']]
列表嵌套列表
字典对象
字典中的键不允许重复,重复出现保留最后一个
冒号不能写在引号内部
字典中的元素没有顺序,不谈下标
key-value,键-值对,查键得值
>>> names={'东邪':'黄药师','西毒':'欧阳锋'}
>>> names['西毒']='杨过'
#不要写等号
>>> names
{'东邪': '黄药师', '西毒': '杨过'}
字典中的值可以修改,但是键不能改
>>> names.pop('西毒')
'杨过'
>>> names['西读']='杨过'
>>> names
{'东邪': '黄药师', '西读': '杨过'}
通过pop删掉原来的键,然后在新建一个才行
>>> names['西狂']=names.pop('西读')
>>> names
{'东邪': '黄药师', '西狂': '杨过'}
因为pop()会返回删除键对应的值,所以可以一步到位
用update可以给字典进行更新
d1={'锦到黑':'15'}
d2.update(d1)
print(d2)
{1994: ‘巴西’, 1998: ‘法国’, 2002: ‘巴西’, 2006: ‘意大利’, 2010: ‘西班牙’, 2014: ‘德国’, 2018: ‘法国’}
{1994: ‘巴西’, 1998: ‘法国’, 2002: ‘巴西’, 2006: ‘意大利’, 2010: ‘西班牙’, 2014: ‘德国’, 2018: ‘法国’, ‘锦到黑’: ‘15’}
字典和列表的混合使用
import random
questions=[{'题目':'白日依山尽,黄河入海流','答案':'王之涣','难度':0.3,'出题':'张老师'},
{'题目':'所守或匪亲,化作狼与豺','答案':'李白','难度':0.6,'出题':'王老师'},
{'题目':'春风桃李花开日,秋雨梧桐叶落时','答案':'白居易','难度':0.6,'出题':'张老师'},
{'题目':'冠盖满京华,斯人独憔悴','答案':'杜甫','难度':0.7,'出题':'王老师'},
{'题目':'会当凌绝顶,一览众山小','答案':'杜甫','难度':0.4,'出题':'张老师'}]
# 列表里面装入5个字典组,每个字典组里面有三个键值对
while True:
i=random.randint(0,4)
print('下一道题的难度系数是:',questions[i]['难度'])
s=input('请输入' +questions[i]['题目']+'的作者是:')
if s==questions[i]['答案']:
print('答对了!')
else :
print('再猜一次吧')
统计史莱克七怪出现频次
monsters={'戴沐白':0,'沐白':0,'戴老大':0,'奥斯卡':0,'小奥':0,'唐三':0,'三哥':0,'小三':0,'小舞':0,'朱竹清':0,'竹清':0,'马红俊':0,'胖子':0,'宁荣荣':0,'荣荣':0}
#创建 字典对象
f=open('D:/全民一起玩Python/斗罗大陆.txt','r',encoding='utf-8')
# 用r只读,encoding按照utf-8解码
for s in f.readlines():
# 逐行读取
for name in monsters:
monsters[name]=monsters[name]+s.count(name)
for k in monsters:
print(k,'出现了',monsters[k],'次')
f.close()
#关闭了才算保存
戴沐白 出现了 2671 次
沐白 出现了 2788 次
戴老大 出现了 126 次
奥斯卡 出现了 2185 次
小奥 出现了 225 次
唐三 出现了 23693 次
三哥 出现了 284 次
小三 出现了 780 次
小舞 出现了 5409 次
朱竹清 出现了 1025 次
竹清 出现了 1157 次
马红俊 出现了 1632 次
胖子 出现了 981 次
宁荣荣 出现了 1877 次
荣荣 出现了 2287 次
题目一
请在控制台中完成以下操作:
创建一个列表并赋值给一个变量 s ,列表内容按顺序为 ‘a’ , 2 , ‘b’ 三个元素。
创建一个字典并赋值给一个变量 d ,字典内容为 3:‘Three’ , 2:‘Two’ , 4:‘Four’ 三个键值对。
将列表 s 中的元素 ‘b’ 替换为字典 d。
将字典 d 中的 “ 3:‘Three’ ” 改成 “ 3:‘叁’ ”。
将字典 d 中的 “ 2:‘Two’ ” 改成 “ ‘二’:‘Two’ ”。
新建一个元组并赋值给一个变量 t,其中第一个元素为列表 s ,第二个元素为字典 d 。
请使用类似 t[0][0][0] 的形式,打印元组t中的列表s的字典d中的键为4的值。
同上,请使用类似 t[0][0] 的形式,打印元组t中的字典d中的键为4的值。
思考:7和8两个步骤的相同点与共同点是什么?
先思考表达式 t[0][2][4][2] 的输出结果是什么,然后再输入到控制台中实际运行、观察结果
>>> s=['a',2,'b']
>>> d={'3':'Three','2':'Two','4':'Four'}
>>> s[2]=d
>>> s
['a', 2, {'3': 'Three', '2': 'Two', '4': 'Four'}]
>>> d['3']='叁'
>>> d
{'3': '叁', '2': 'Two', '4': 'Four'}
>>> d['二']=d.pop('2')
>>> d
{'3': '叁', '4': 'Four', '二': 'Two'}
>>> t=(s,d)
>>> t
(['a', 2, {'3': '叁', '4': 'Four', '二': 'Two'}], {'3': '叁', '4': 'Four', '二': 'Two'})
>>> t[0][2]['4']
'Four'
>>> t[1]['4']
'Four'
>>> t[0][2][4][2]
Traceback (most recent call last):
File "<pyshell#32>", line 1, in <module>
t[0][2][4][2]
KeyError: 4
>>> t[0][2]['4'][2]
'u'
自定义函数
def 我的加法(x,y):
s=x+y
print('我算好加法了!')
return s
t=我的加法(2,7)
print(t)
def chNum(x):
#定义好函数,执行的时候则是顺序执行
#调用到的时候再返回来
print('转换开始!')
s={1:'壹',2:'贰',3:'叁',4:'肆',5:'伍',
6:'陆',7:'柒',8:'捌',9:'玖',0:'零'}
c=s[x]
return c
#该缩进才能缩进,否则会混乱
y =chNum(2)
print('大写形式为:',y)
跨程序调用
import mytool
n=['戴沐白','沐白','戴老大','奥斯卡','小奥','唐三','三哥','小三',
'小舞', '朱竹清','竹清','马红俊','胖子','宁荣荣','荣荣']
#用中括号生成列表,这里不用花括号
r=mytool.count_words('D:/全民一起玩Python/斗罗大陆.txt',n)
# 导入的import作为对象
for k in r:
print(k,'出现了',r[k],'次')
安装jieba模块
win+R 输入cmd进入控制界面
输入pip list查看所安装了的包
输入
pip install -i https://pypi.doubanio.com/simple jieba
进行安装
统计词频
import jieba
f=open('F:/学习/英语/the way to success.txt','r',encoding='utf-8')
all_words=[]
#建立空列表
for s in f.readlines():
line_words=jieba.lcut(s)
all_words.extend(line_words)
#在空列表中添加元素
set_words=set(all_words)
#把列表转换为集合
all_words=list(set_words)
#再把集合转换为列表
all_words.sort()
f2=open('D:/全民一起玩Python/result.txt','w')
f2.write('\n'.join(all_words))
f2.close()
题目一
请编写一个计算三角形面积的函数。该函数接收两个参数,分别代表底边长度与三角形高度(假设变量名为a与h);然后该函数按照公式“底乘高除以2”,计算出面积数值并返回。
在完成上述任务后,请把程序中的函数剪切并粘贴到一个新建的Python程序文件中,然后为新文件命名并保存在同一目录下。接下来修改原来的程序文件,使之通过import语句,以调用模块的方式引用该函数。
添加一个函数,用于计算圆形面积。该函数接收一个代表半径的参数,并返回面积数值。
三角形面积公式.py
import math
def 三角形面积(a,b):
s=a*b/2
return s
def 圆形面积(r):
s=math.pi*r*r
return s
三角形面积公式调用.py
import 三角形面积公式
a=int(input('请输入三角形的底'))
b=int(input('\n请输入三角形的高'))
s=三角形面积公式.三角形面积(a,b)
print(s)
r=int(input('\n请输入圆的半径'))
s=三角形面积公式.圆形面积(r)
print(s)