Python程序设计与算法基础教程·第五章上机实践

Python版本 3.6
第五章的题好少啊。。。

  • 5.1
# -*- coding: utf-8 -*-
s=input('请输入字符串:')
s=s.split()#切片
print('其中单词总数有:',len(s))

这是最基础的,基于内建函数split()的切片
没有
如果要分割多个空格,以及逗号,点号什么的,可以用re模块的正则表达式来判断

# -*- coding: utf-8 -*-
import re
s=input('请输入字符串:')
s=re.split('\W+',s)#切片
print('其中单词总数有:',len(s))

其中’\W+’作为转义字符表达任意长度(尽量长)的非单词(a~z A~Z 1~9)字符,有兴趣的同学可以自行上网查找,这里不做过多说明
这里写图片描述

  • 5.2
# -*- coding: utf-8 -*-
s1=['e','b','e','a','h','c','d','b','h','e']
print(s1)
#利用集合不重复的特性快速得到结果
s2=list(set(s1))
s2.sort(key=s1.index)
print(s2)
#遍历
s2=[]
for i in s1:
    if i not in s2:
        s2.append(i)
print(s2)
#简写遍历
s2=[]
[s2.append(i) for i in s1 if i not in s2]
print(s2)

这道题通过看书和看教程,我学会了两种方法,第一种完全就是用函数,第二种则是自己写算法, 不过可以用列表解析表达式来简化过程。
这里写图片描述

  • 5.3
    书上给出的提示那么多了,我就偷懒少写几个
# -*- coding: utf-8 -*-
#这题里面要求真的多。。。元素个数,最大值,最小值,和,平均值
s=[9,7,8,3,2,1,55,6]
s2=[]
n=len(s)#元素个数
'''
smax=s[0]
smin=s[0]
su=0
for i in range(0,len(s)):
    if smaxs[i]:smin=s[i]
    su+=s[i]
av=su/len(s)
'''#同下
smax=max(s)#最大值
smin=min(s)#最小值
su=sum(s)
av=su/len(s)
print('最大值为:%d\n最小值为:%d\n元素之和为:%d\n平均值为:%f\n'%(smax,smin,su,av))

结果如下:
这里写图片描述

  • 5.4
# -*- coding: utf-8 -*-
s=[9,7,8,3,2,1,5,6]
print('原列表:',s)
for i in range(0,len(s)):
    if s[i]%2==0: s[i]**=2
print('处理后:',s)

列表解析表达式不管用了,不开心
这里写图片描述

  • 5.5
# -*- coding: utf-8 -*-
s=input('请输入一个字符串:')
s1=[]
for i in range(0,len(s)):
    s1.append(ord(s[i]))
print(s1)

可算是用上append()方法了
这里写图片描述

你可能感兴趣的:(学习笔记)