实验五.用序列类型求解问题

一、实验目的

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语法表达,而且有些不太理解的地方也不知道要怎么搜索,学的有点坎坷,但我仍会继续努力!

随意将自己作业共享给大家参考,本人不是专业的,如有错误请自行订正哈~

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值