前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >实验三 序列数据处理程序设计

实验三 序列数据处理程序设计

原创
作者头像
背雷管的小青年
修改2020-06-08 14:26:35
1.9K0
修改2020-06-08 14:26:35
举报
文章被收录于专栏:技术开发——你我他

实验三 序列数据处理程序设计

一、实验目的与要求

1、学习序列数据结构的方法。

2、掌握字符串的输入和输出,会使用切片的方式访问字符串中的值,掌握常见的字符串的内建函数。

3、掌握什么是列表以及列表的常见操作,掌握列表的嵌套使用。

4、掌握元组的使用,掌握什么是字典以及字典的常见操作。

二、实验原理

字符串是一种表示文本数据的类型,字符串中的字符可以是ASCII字符、各种符号以及各种Unicode字符。Python中的字符串有三种表现方式,分别是:使用单引号包含字符、使用双引号包含字符、使用三引号包含字符。对于单引号或者双引号这些特殊的符号,如果出现在字符串中,我们可以对他们进行转义。Python支持字符串格式化的输出,尽管这样可能会用到非常复杂的表达式,但最基本的用法就是将一个值插入到一个有字符串格式符%s的字符串中。Python 3提供了 input() 函数从标准输入读取一行文本,默认的标准输入是键盘。input可以接收一个Python表达式作为输入,并将运算结果返回。字符串中的每个字符都对应一个下标,下标编号是从0开始的。如果希望访问字符串中的值,需要使用下标来实现。切片是指对操作的对象截取其中一部分的操作。切片选取的区间属于左闭右开型,即从"起始"位开始,到"结束"位的前一位结束(不包含结束位本身)

字符串作为最常用的一种数据类型,它提供了很多内建函数。(1)find函数:检测字符串是否包括子字符串;(2)index函数:检测字符串是否包括子字符串;(3)count函数:统计字符串中某个字符的个数;(4)replace函数:将旧字符串替换为新字符串;(5)splite函数:通过指定分隔符对字符串进行切片;(6)capitalize:第一个字符大写,其他字符小写;(7)title:所有单词首字母大写,其余字母消息;(8)startswith:检查字符串是否以指定子串开头;(9)endswith:检查字符串是否以指定子串结尾;(10)upper:将小写字母转为大写字母;(11)ljust:左对齐,使用空格填充至指定长度的新字符串;(12)rjust:右对齐,使用空格填充至指定长度的新字符串;(13)center:返回一个指定的宽度 width 居中的字符串;(14)lstrip:截掉字符串左边的空格或指定字符;(15)rstrip:截掉字符串右边的空格或指定字符;(16)strip:截掉字符串左右边的空格或指定字符。

序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字——它的位置或索引,第一个索引是0,第二个索引是1,依此类推。Python有6个序列的内置类型,但最常见的是列表和元组。除此之外,Python还提供了一种存储数据的容器——字典。

列表是Python中的一种数据结构,它可以存储不同类型的数据。列表索引是从0开始的,我们可以通过下标索引的方式来访问列表中的值。为了更有效地输出列表的每个数据,我们可以使用for和while循环来遍历输出列表。在列表中增加元素的方式有多种,具体如下:(1)通过append可以向列表添加元素;(2)通过extend可以将另一个列表的元素添加到列表中;(3)通过insert在指定位置index前插入元素object。在列表中查找元素的方法包括:(1)in(存在),如果存在那么结果为true,否则为false;(2)not in(不存在),如果不存在那么结果为true,否则false。列表元素的修改,也是通过下标来实现的。列表元素的常用删除方法有三种,具体如下:(1)del:根据下标进行删除;(2)pop:删除最后一个元素;(3)remove:根据元素的值进行删除。列表的排序可以通过下面两个方法实现:(1)sort方法:列表的元素按照特定顺序排列;(2)reverse方法:将列表逆置。列表的嵌套指的是一个列表的元素又是一个列表。

Python的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。元组可以使用下标索引来访问元组中的值,元组中的元素值是不允许修改的,但我们可以对元组进行连接组合。可以使用for循环实现元组的遍历,另外,Python也针对元组的操作提供了多个内置函数。

字典是一种存储数据的容器,它和列表一样,都可以存储多个数据。不同的是,列表在查找某个元素时,是根据下标来进行的,而字典在查找某个元素时,是根据“名字”来查找的。字典包括以下几种常见的操作:(1)根据键访问值;(2)修改字典的元素;(3)添加字典元素;(4)删除字典元素;(5)计算字典中键值对的个数;(6)获取字典中键的列表;(7)获取字典中值的列表;(8)计算字典中键值对的个数。在实际开发中,字典的遍历可以通过for循环来完成。

三、预习与准备

1、提前预习Python语言的序列数据结构的语法知识,实验之前编写好程序代码。

2、练习使用字符串、列表、元组以及字典的常见操作。

四、实验过程记载

(对实验的主要过程与步骤进行记载;若有较多的截图或代码,可以单独用附件的形式列出)

实验题1 分析程序运行结果:阅读下面的程序,分析代码是否能够编译通过。如果能编译通过,请列出运行的结果,否则请说明编译失败的原因。

(1)num1 = input("请输入一个整数:")

num2 = input("请输入一个整数:")

if num1%num2 == 0:

print("验证码正确")

答:不能编译通过。因为num1和num2属于字符串类型,不能执行取余操作。

如果需要通过可以使用eval()函数来转换一下

(2)mystr = ' hello world itheima '

index = mystr.index("itheima",0,10)

print(index)

答:由于没有在字符串中找到子串,index方法默认会抛出ValueError异常。

(3)tup = ('a','b','c')

tup[3] = 'd'

print(tup)

答案:程序运行错误,元组不能使用下标增加元素。

(4)dic = {'a':1,'b':2,'a':3}

print(dic['a'])

结果为:3

(5)arr = [10,23,66,26,35,1,76,88,58]

arr.reverse()

print(arr[3])

arr.sort()

print(arr[3])

结果为:1,26

实验题2 编程实现接收输入的一行字符,统计出字符串中包含数字的个数。

源码:

代码语言:javascript
复制
print("用于统计字符串的个数!")
s = input("请输入一串字符")
ls = list(s)  #字符串转列表
print(ls)
num = 0
for i in ls:
    if i.isdigit(): #判断是否为数字
        num=num+1
print("统计出字符串中包含数字的个数为:{}".format(num))

实验题3 请根据下述需求,编写一个程序。

用户输入一个字符串,将下标为偶数的字符提出来合并成一个新的字符串A,再将下标为奇数的字符提出来合并成一个新的字符串B,再将字符串A和B连接起来并输出。

源码:

代码语言:javascript
复制
print("组合字符串")
s = input("请输入一串字符")
single = ""
double = ""
for i in range(1,len(s)+1):
    if i%2 == 0:
        double=double+s[i-1]
    else:
        single=single+s[i-1]
print("组合后的数据为:{}".format(single+double))

实验题4 请编写一个程序,用于统计字符串中每个字母出现的次数(忽略字母大小写,例如a和A看做是同一个字母),统计出的结果,请按照['a':3,'b':2]的格式输出。

源码:

代码语言:javascript
复制
c = dict(zip([chr(i) for i in range(97,97+26)],[0 for i in range(26)]))
d = str(input("请输入有由英文字母组成的字符串:")).lower()
for st_r in d:
    c[st_r] += 1
print(c)

实验题5请编写一个程序,使用字典存储学生信息,学生信息包括学号和姓名,请根据学生学号从小到大输出学生的信息。

源码:

代码语言:javascript
复制
length = int(input("请输入学生总数:"))
dict_1 = {}
i = 1
while i <= length:
    id = int(input("请输入第%d位学生学号:"%i))
    name = input("请输入第%d位学生姓名:"%i)
    dict_1.__setitem__(id,name)
    i += 1
print("-----未排序前-----")
print(dict_1)
def dicttolist(dict_1:dict):
    keys = dict_1.keys()
    vals = dict_1.values()
    list = [(key, val) for key, val in zip(keys, vals)]
    return list
new = sorted(dicttolist(dict_1), key=lambda x:x[0], reverse=False)

实验题6编程实现:请输入星期几的第1个字母,用来判断是星期几,如果第1个字母一样,则继续判断第2个字母,以此类推。(选做)

源码:

代码语言:javascript
复制
w={'m':'Monday ', 'tu':'Tuesday ', 'w':'Wednesday ', 'th':'Thursday ', 'f':'Firday ', 'sa':'Saturday ', 'su':'Sunday ', 't':'Tuesday/Thursday ', 's':'Saturday/Sunday  ' }
a=input('请输入首字母或者2个字母:')
if a in w.keys():
    print(w[a])
else:
    print('没有此星期')

实验题7 假设有两个3ⅹ3的矩阵,请编写一个程序,计算这两个矩阵的和并输出。(选做)

源码:

代码语言:javascript
复制
def add(a, b):   # 定义add函数
    i, j = len(a), len(a[0])  # i是行数,j是列数
    c = [[0]*j]*i   # 初始化c矩阵,等于0
    for m in range(i):
        for n in range(j):
            c[m][n] = a[m][n] + b[m][n]
    return c
a = [[1,2,3],[4,5,6],[7,8,9]]
b = [[9,8,7],[6,5,4],[3,2,1]]
c = add(a, b)
print(c)

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档