全民一起玩Python基础篇第六课:复杂结构初步(列表、对象、模块等)(下)

多维列表

>>> 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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值