educoder:实验八 列表

这篇具有很好参考价值的文章主要介绍了educoder:实验八 列表。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

第1关:欧拉筛法求素数

任务描述

用户列表和密码列表如下所示 yhlb=["mary","harry","mike","tom","rose"] mmlb=["123456","888888","999999","765432","678901"] 补充程序,实现对用户和密码列表进行增加、删除、查询。 程序显示菜单如下 请选择 1 用户增加 2 用户删除 3 用户查询 4 退出系统

当用户输入1 输入用户姓名和密码后,若用户在列表中,显示用户已存在 无法增加。 若不存在,则将用户名和密码追加到相应的列表中。并显示用户已增加。

当用户输入2 输入用户姓名后, 若用户不在列表中,显示用户不存在 不能删除。若在列表中,则将用户名和密码删除,并显示用户已删除。

当用户输入3 输入用户姓名后, 若用户不在列表中,显示用户不存在 不能查询。若在列表中,则显示密码。

当用户输入4,则退出循环

测试说明

平台会对你编写的代码进行测试:

示范1 请选择 1 用户增加 2 用户删除 3 用户查询 4 查看数据,退出系统 请输入1 请输入用户名mike 请输入密码123456 用户已经存在,无法增加 请输入1 请输入用户名mickey 请输入密码123456 用户已增加 请输入4 用户名mary 密码123456 用户名harry 密码888888 用户名mike 密码999999 用户名tom 密码765432 用户名rose 密码678901 用户名mickey密码123456

示范2 请选择 1 用户增加 2 用户删除 3 用户查询 4 查看数据,退出系统 请输入2 请输入用户名kitty 用户不存在,无法删除 请输入2 请输入用户名mary 用户已删除 请输入4 用户名harry 密码888888 用户名mike 密码999999 用户名tom 密码765432 用户名rose 密码678901

示范3 请选择 1 用户增加 2 用户删除 3 用户查询 4 查看数据,退出系统 请输入3 请输入用户名mary 密码123456 请输入3 请输入用户名kitty 用户不存在 请输入4 用户名mary 密码123456 用户名harry 密码888888 用户名mike 密码999999 用户名tom 密码765432 用户名rose 密码678901


开始你的任务吧,祝你成功!

代码:

n = eval(input())
l = []
# 代码开始
filter = [True for i in range(n + 1)]
for num in range(2, n + 1):
    if filter[num]:
        l.append(num)
    for prime in l:
        if num * prime > n:
            break
        filter[num * prime] = False
        if num % prime == 0:
            break;
# 代码结束
print(l)

第2关:统计文档中诗人列表

任务描述

本关任务:编写一个程序,将文档《中学诗词》中作者的姓名加入一个列表,按作者的姓名排序。显示列表中作者的序号和姓名。 如图所示,标题行显示诗名(或词名空格词牌名)、空格、作者 注意:其他行也可能包含空格,但标题行不包含逗号、句号、感叹号

educoder:实验八 列表

 

相关知识

为了完成本关任务,你需要掌握:1.如何打开文件,2.如何遍历文件。 3.如何处理字符串 4.如何向列表中添加信息 5.如何对列表排序

打开文件

<file对象名>=open(<文件名>,<打开模式>) 打开一个文件,并创建一个file类对象 文件名在当前文件夹下,直接输入文字的名字 在其他路径下,则是包含完整路径的名字 'r' 只读模式,如果文件不存在,返回异常FileNotFoundError,默认值

遍历文件

for r in 文件对象: 可以对文件的每一行循环,r为读取的每一行文本

字符串的移除

str.strip(字符); strip() 方法用于移除字符串头尾指定的字符或字符序列,默认为空格和换行符。 例如line.strip()可删除字符串首尾的空格和换行符。 注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。 示例如下:

  1. str = "00000003210Runoob01230000000"
  2. str.strip( '0' )为去除首尾字符 0,即3210Runoob0123

字符串的截取

find() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果包含子字符串返回开始的索引值,否则返回-1。 rfind() 方法是从字符串尾部开始查找字符

示例如下:

  1. x='1234a5678a9b'
  2. pos=x.rfind('a')
  3. 则pos值为9
  4. x[:pos]为字符a以前的字符串'1234a5678’
  5. x[pos:]为字符a及以后的字符串'a9b’

列表的处理

列表lb的添加 lb.append(元素)

列表lb的排序 lb.sort()

  1. list1=[3,2,1,5,6]
  2. list1.sort()
  3. list1
  4. [1,2,3,5,6]

测试说明

平台会对你编写的代码进行测试: 显示结果如下

educoder:实验八 列表

雄鸡一唱天下白 少年心志当拿云 开始你的任务吧,祝你成功!

代码:

f1=open("sy8//中学诗词.txt","r",encoding='utf-8')
zj=[]
#代码开始
for line in f1.readlines():
    line=line.strip()
    if ' ' in line and ',' not in line and '。'not in line and line.find('!')==-1:
        index=line.rfind(' ')
        name=line[index+1:]
        if name not in zj:
            zj.append(name)

zj.sort()
#代码结束
for i in range(1,len(zj)+1):
    print(i,zj[i-1])
f1.close()

第3关:使用列表求解约瑟夫环

任务描述

本关任务:编写一个使用列表求解约瑟夫环的问题

约瑟夫问题可以这样描述:n个人按1,2,3,… ,n编号,并顺序围坐一圈。开始按照1,2,3,… ,m 报数,凡报到 m 的出列。直到所有人出列为止。 下图模拟n为8m为4的出列顺序

educoder:实验八 列表

 

相关知识

为了完成本关任务,你需要掌握:1.约瑟夫环的算法2.列表的操作

约瑟夫环的算法

建立一个列表lb存放n个值 遍历该列表,从1开始计数,到第m个值将其从列表删除。然后继续从1开始计数,数到第m个值将其从列表删除。 以此类推,直到列表中没有元素为止

列表的操作

列表lb的添加 lb.append(元素) 列表lb的删除 lb.remove(x) 删除lb中值为x的列表

编程要求

根据提示,在右侧编辑器补充代码,输入人数n和序号m,输出出圈的序号。

测试说明

平台会对你编写的代码进行测试:

测试输入: 输入人数6 输入序号4 预期输出: 4 2 1 3 6 5

测试输入: 输入人数10 输入序号3 预期输出: 3 6 9 2 7 1 8 5 10 4


成功的路上并不拥挤,因为坚持的人不多 开始你的任务吧,祝你成功!

代码:

x=[]
n=eval(input("输入人数"))
k=eval(input("输入序号"))
#代码开始
for i in range(1,n+1):
    x.append(i)
t=0
for j in range(1,n+1):
    t=(t+k-1)%len(x)
    item=x.pop(t)
    print(item)
#代码结束

第4关:两数之和

任务描述

本关任务: 对于一个不包含重复数字的有序列表 [1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 18, 19, 20, 21, 29, 34, 54, 65] 从键盘输入n,查找是否有两数之和等于n,若有则返回两数的下标(找到一组即可且要求其中的一个数尽量小),若所有数均不满足条件则输出“not found”。

测试说明

平台会对你编写的代码进行测试:

测试输入:21; 预期输出: 0 14

测试输入:'24'; 预期输出: 1 14

注意:两个数之间用空格隔开

测试输入:'6'; 预期输出:not found


开始你的任务吧,祝你成功!

代码:

lst1=[1,4,5,6,7,8,9,10,11,12,13,15,18,19,20,21,29,34,54,65]
n=eval(input("请输入n"))
#代码开始

l=len(lst1)
for i in range(l):
    first_num=lst1[i]
    other_num=n-first_num
    if other_num in lst1:
        print(f'{i} {lst1.index(other_num)}')
        break
else:
    print('not found')
#代码结束

第5关:用户数据的增加、删除、查询

任务描述

用户列表和密码列表如下所示 yhlb=["mary","harry","mike","tom","rose"] mmlb=["123456","888888","999999","765432","678901"] 补充程序,实现对用户和密码列表进行增加、删除、查询。 程序显示菜单如下 请选择 1 用户增加 2 用户删除 3 用户查询 4 退出系统

当用户输入1 输入用户姓名和密码后,若用户在列表中,显示用户已存在 无法增加。 若不存在,则将用户名和密码追加到相应的列表中。并显示用户已增加。

当用户输入2 输入用户姓名后, 若用户不在列表中,显示用户不存在 不能删除。若在列表中,则将用户名和密码删除,并显示用户已删除。

当用户输入3 输入用户姓名后, 若用户不在列表中,显示用户不存在 不能查询。若在列表中,则显示密码。

当用户输入4,则退出循环

测试说明

平台会对你编写的代码进行测试:

示范1 请选择 1 用户增加 2 用户删除 3 用户查询 4 查看数据,退出系统 请输入1 请输入用户名mike 请输入密码123456 用户已经存在,无法增加 请输入1 请输入用户名mickey 请输入密码123456 用户已增加 请输入4 用户名mary 密码123456 用户名harry 密码888888 用户名mike 密码999999 用户名tom 密码765432 用户名rose 密码678901 用户名mickey密码123456

示范2 请选择 1 用户增加 2 用户删除 3 用户查询 4 查看数据,退出系统 请输入2 请输入用户名kitty 用户不存在,无法删除 请输入2 请输入用户名mary 用户已删除 请输入4 用户名harry 密码888888 用户名mike 密码999999 用户名tom 密码765432 用户名rose 密码678901

示范3 请选择 1 用户增加 2 用户删除 3 用户查询 4 查看数据,退出系统 请输入3 请输入用户名mary 密码123456 请输入3 请输入用户名kitty 用户不存在 请输入4 用户名mary 密码123456 用户名harry 密码888888 用户名mike 密码999999 用户名tom 密码765432 用户名rose 密码678901


开始你的任务吧,祝你成功!

代码:文章来源地址https://www.toymoban.com/news/detail-468991.html

yhlb = ["mary", "harry", "mike", "tom", "rose"]
mmlb = ["123456", "888888", "999999", "765432", "678901"]
print("""请选择
1 用户增加
2 用户删除
3 用户查询
4 查看数据,退出系统""")

while True:
    choice = int(input("请输入"))
    if choice == 1:
        yhlb1 = input("请输入用户名")
        mmlb1 = input("请输入密码")
        if yhlb1 in yhlb:
            print("用户已经存在 无法增加")
        else:
            yhlb.append(yhlb1)
            mmlb.append(mmlb1)
            print("用户已增加")
    if choice==2:
        yhlb2 = input("请输入用户名")
        mmlb2="678901"
        if yhlb2 in yhlb:
            yhlb.remove(yhlb2)
            mmlb.remove(mmlb2)
            print("用户已删除")
        else:
            print("用户不存在 无法删除")
    if choice==3:
        yhlb3 = input("请输入用户名")
        if yhlb3 in yhlb:
            print("密码123456")
        else:
            print("用户不存在")
    if choice==4:
        break
# 代码结束
for i in range(0, len(yhlb)):
    print("用户名{:6}密码{:6}".format(yhlb[i], mmlb[i]))

到了这里,关于educoder:实验八 列表的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ZABBIX根据IP列表,主机描述,或IP子网批量创建主机的维护任务

    有时候被ZABBIX监控的主机可能需要关机重启等维护操作,为了在此期间不触发告警,需要创建主机的维护任务,以免出现误告警 ZABBIX本身有这个API可供调用(不同版本细节略有不同,本次用的ZABBIX6.*),实现批量化建立主机的维护任务 无论哪种方式(IP列表,主机描述,或IP子网)创建维护

    2024年01月17日
    浏览(45)
  • POJ 2429 Miller-rabin素数判定 + pollard-rho质因子分解 + 埃氏筛法

    题目不能说是很难,只是用到了许多数学上的知识(费马小定理,miller-radin,pollard-rho),还有一些算法上的知识DFS,辗转相除。 我也很菜,一个周末的时间都用在这个题目上了,但写了很多很多的注释,花费了大量的篇幅,浅谈了我对这些算法的拙见,希望能够帮助大家!

    2024年02月13日
    浏览(40)
  • 整数因子分解问题(分治法&&欧拉线性筛素数)

    问题描述: 大于1 的正整数n 可以分解为:n=x1*x2*…*xm。 例如,当n=12 时,共有8 种不同的分解式: 12=12; 12=6*2; 12=4*3; 12=3*4; 12=3*2*2; 12=2*6; 12=2*3*2; 12=2*2*3 。 编程任务: 对于给定的正整数n,编程计算n 共有多少种不同的分解式。 数据输入: 由文件input.txt 给出输入数据

    2024年01月17日
    浏览(43)
  • 实验一 第2关:从自然数中取3个数进行组合之递归算法任务描述

    任务描述 本关任务:用递归算法找出 5 个自然数中取 3 个数的组合。 编程要求 请在右侧编辑器Begin-End处补充代码,完成本关任务。 测试说明 平台会对你编写的代码进行测试,比对你输出的数值与实际正确数值,只有所有数据全部计算正确才能通过测试: 测试输入:5 3 (

    2024年02月06日
    浏览(43)
  • educoder:实验五 循环结构

    第1关:斐波那契数列 任务描述 本关任务:编写一个能计算斐波那契数列中第x个数的小程序。 相关知识 为了完成本关任务,你需要掌握:1.什么是斐波那契数列,2.for循环 什么是斐波那契数列 斐波那契数列(Fibonacci sequence),又称黄金分割数列、 因数学家莱昂纳多·斐波那

    2024年02月07日
    浏览(35)
  • educoder:实验十一 函数

    第1关:定义判断质数的函数 任务描述 本关任务:编写一个能判断质数的函数。若参数是质数,返回true;否则返回false。 主程序输入一个数n,然后调用该函数判断其是否是质数,是则显示n是质数,否则显示n不是质数。 相关知识 为了完成本关任务,你需要掌握:如何定义函

    2024年02月03日
    浏览(34)
  • educoder:实验十 字典

    第1关:统计文档中作者作品数量 任务描述 本关任务:编写一个能计算文档《中学诗词.txt》中各位作者作品数量的程序。 遍历文档中每一行,提取作者的姓名,将其作为键加入到字典中,字典的值为作品数量。 然后将字典转换为二维列表,按作品数量的降序排列。 相关知识

    2024年02月06日
    浏览(34)
  • Educode--机器学习基础模型与算法测试闯关实验

    # -*- coding: utf-8 -*- \\\'\\\'\\\' 油气藏的储量密度Y与生油门限以下平均地温梯度X1、 生油门限以下总有机碳百分比X2、生油岩体积与沉积岩体积百分比X3、砂泥岩厚度百分比X4、 有机转化率X5有关,数据文件为“1.xlsx”,字段如下: 样本ID    X1    X2    X3    X4    X5    Y

    2024年02月06日
    浏览(41)
  • 头歌Educoder实验:C++ 面向对象 - 类的继承与派生

    第1关:公有继承 —— 学生信息类 任务描述 本关任务:采用公有继承设计学生信息类。 相关知识 继承 继承是使代码可以复用的重要手段,也是面向对象程序设计的核心思想之一。简单的说,继承是指一个对象直接使用另一对象的属性和方法。 C++ 中的继承关系就好比现实生

    2024年02月04日
    浏览(136)
  • 头歌Educoder云计算与大数据——实验三 分布式文件系统HDFS

    本关任务:使用Hadoop命令来操作分布式文件系统。 为了完成本关任务你需要了解的知识有:1.HDFS的设计,2.HDFS常用命令。 HDFS的设计 点点点…题目省略,懒得写了,下同 分布式文件系统 NameNode与DataNode HDFS的常用命令 在右侧命令行中启动Hadoop,进行如下操作。 在HDFS中创建

    2024年02月13日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包