一、实验目的
1.掌握Python语言中的各种序列类型;
2.熟练运用系列类型(列表、元组、字典、集合)解决问题。
二、实验环境
多媒体计算机 Windows 操作系统 Python3.7
三、实验内容及要求
(一)编写程序,求列表S=[9,7,8,3,2,1,55,6]中的元素个数、最大值、最小值、元素之和、平均值,以及最小值的索引号。请思考,有哪几种实现方法。
(二)编写程序,将列表s=[9,7,8,3,2,1,55,6]中的偶数变成它的平方,奇数保持不变。
(三)编写程序,输入字符串,为其每个字符的ASCII码形成列表并输出.。
(四)统计输入的字符串单词个数,单词之间用空格分隔。
(五)编写程序,实现删除一个list表里面的重复元素。(至少两种方法实现,如集合类型、字典类型等)
(六)用户输入整数n(1<=n<=26)和整数m(m<=n),然后输入n个不同的字母,请编写程序输出在这n个字母中选择m个字母的所有排列序列和组合序列。
四、实验相关步骤及代码、结果
1.
#编写程序,求列表s=[]求 元素个数,最大值,最小值,元素和,平均值
def choose(s):
sum = 0
all = 0
maxnum = max(s)
minnum = min(s)
for i in s:
sum = sum + 1 #元素个数
all = all + i
average = all / sum
print(str("元素个数{0},最大值{1},最小值{2},元素和{3},平均值{4}").format(sum, maxnum, minnum, all, average))
def main():
s = [9,7,8,3,2,1,55,6]
choose(s)
main()
#编写程序,求列表s=[]求 元素个数,最大值,最小值,元素和,平均值,以及最小值的索引号
s = [9,7,8,3,2,1,55,6]
num = 0
all = 0
maxnum = max(s)
minnum = min(s)
for i in s:
num = num + 1 #元素个数
all = all + i
average = all / num
p=dict(zip(range(9),s))
minindex = [index for index,value in p.items() if value== minnum]
print(str("元素个数{0},最大值{1},最小值{2},元素和{3},平均值{4},最小数索引号{5}").format(sum, maxnum, minnum, all, average,minindex))
2.
s=[9,7,8,3,2,1,5,6]
for i in range(0,8):
if (s[i]%2)==0:
s[i]=s[i]*s[i]
print(s)
3.
#输入字符串,每个字符的ASCII用列表输出
def turn(s):
L = []
for i in s:
L.append(chr(ord(i)-32)) #先将字符通过ord函数转换成ASCII码,然后+32从大写变成小写(小变大-32),再通过chr函数转换成字符)
return L
def main():
s = str(input("请输入待转换的小写字母:"))
print(turn(s))
main()
例1、大小写字母转换:
str=input(‘输入大写字母:')
(chr(ord(str)+32)) #先将字符通过ord函数转换成ASCII码,然后+32从大写变成小写(小变大-32),再通过chr函数转换成字符)
例2、字符型数字和int型数字转换:
print( chr(ord('1')+3))#现将字符1转换成ASCII码,再+3后装换回字符
输出结果:4
4.
#统计输入的字符串中单词的个数(以空格为分格单词)
def word_len(s):
return len([i for i in s.split(' ') if i])
def main():
s = str(input("请输入字符串:"))
l = word_len(s)
print(l)
main()
5.
#集合法
x=[23,21,'ab',21,2,5,'bc']
x=set(x)
x=list(x)
print(x)
#字典法:
x=[23,21,'ab',21,2,5,'bc']
y=dict.fromkeys(x)
for key in y.keys():
print(key,end=' ')
6.
from itertools import permutations
n=int(input('请输入整数n:'))
m=int(input('请输入整数m:'))
if (n < m ):
print('n不能小于m!')
elif (n > 26):
print('n不能大于26!')
else:
s = input('n个不同的字母:')
perms = permutations(s, 2)
for i in list(perms):
print(i,end="\t")
五、总结和体会
感觉有些都搜不到原题,虽然我有想法,但是不会用python语法表达,而且有些不太理解的地方也不知道要怎么搜索,学的有点坎坷,但我仍会继续努力!
随意将自己作业共享给大家参考,本人不是专业的,如有错误请自行订正哈~