Python程序设计 列表

教学案例八 列表

1. 计算并显示斐波那契数列

输入n,计算并显示斐波那契数列前n项.一行打印5项,每项显示宽度为6

什么是斐波那契数列

斐波那契数列(Fibonacci sequence),又称黄金分割数列、 因数学家莱昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”。 有一对兔子,从出生后第 3 个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,每个月的兔子数形成的数为斐波那契额数列 在数学上,斐波那契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 3,n ∈ N*)

n=eval(input())
#代码开始
s = [1,]
a = 1
b = 1
for i in range(1, n):
    if i == 1:
        s.append(1)
    else:
        s.append(s[i-1]+s[i-2])
n = 0
for i in s:
    print("{:6d}".format(i),end="")
    n+=1
    if n % 5 == 0:
        print()
#代码结束

2. 整数统计

从键盘输入若干个1-100之间的整数,求这些数的和、个数、平均值、最大值、最小值、中位数和均方差。 若输入0,则输入结束,显示统计结果。若输入不符合要求的数,则显示非法输入,并不将该数计算在内。

1.lb为空列表
2.永真循环 输入x 若x为0则退出循环 若x为1-100的整数则添加到列表lb中 否则显示输入错误

3.输出lb的个数len(lb) 、和sum(lb)、平均值sum(lb)/len(lb)、最小数min(lb)、最大数max(lb)
4.中位数的计算 首先将列表排序 当列表个数为奇数,中位数是序号为列表个数//2的列表项。当列表个数为偶数,中位数是序号为列表个数//2-1的列表项和列表个数//2的列表项的平均值。

5.方差的计算: 对列表的每个数循环,计算其与列表的平均值的差的平方和,除以列表个数则为方差。

列表的统计函数

,

,

列表的排序

lb.sort() 方法,将列表lb按升序排列

sorted(lb) 函数会返回一个新的已排序列表,不会修改lb的元素顺序

#代码开始
sum1 = 0
lb = []
min1 = 100
max1 = 0
yh = 0
while True:
    x = eval(input("请输入一个整数"))
    if x == 0:
        break
    if 0 <= x <= 100:   
        lb.append(x)
    else:
        print("非法输入")

for i in lb:
    yh += 1
    sum1 += i
    min1 = min(min1,i)
    max1 = max(max1,i)

lb.sort()
if yh % 2 == 0:
    zz = (lb[yh//2] + lb[yh//2-1])/2
else:
    zz = lb[yh//2]

pj = sum1 / yh
fc = 0
for i in lb:
    fc += (i-pj)**2

fc = fc / yh
print("有效数{}个和{}最大数{}最小数{}平均值{:.2f}".format(yh,sum1,max1,min1,pj))
if yh % 2==0:
    print("中位值{:.1f}方差{:.2f}".format(zz,fc))
else:
    print("中位值{}方差{:.2f}".format(zz,fc))
#代码结束

3. 统计文档中诗人列表

《唐诗.txt》文本文件中记录了多位诗人的多首诗文。编写程序,按姓名顺序显示所有诗人的姓名,同一个姓氏的诗人显示在一行,并统计诗人个数。

字符串的移除

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

字符串的截取

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

列表的处理

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

列表lb的排序 lb.sort()

f1=open("sy8//唐诗.txt","r",encoding='gbk')
#代码开始
lb = []
for i in f1.readlines():
    i = i.strip("\n")
    for j in i:
        if j.isdigit()==True:
            lb.append(i)
            break
lb1 = []
n = 0
for i in lb:
    i = i.split(":")[0]
    a = i[3:]
    n += 1  
    lb1.append(a)

lb1 = list(set(lb1))
lb1.sort()

count = len(lb1)
for i in range(0,count):
    print(i+1,lb1[i],end="")   
    if i == count-1:
        break
    if lb1[i][0] != lb1[i+1][0]:
        print()    
           
print()   
print("共有%d诗人"% count)

f1.close()
#代码结束

4. 股票列表数据的显示

某人将自选股的股票代码存储在列表zxg,股票名称存储在列表gpmc中 zxg=["600030","300059","600053","300339"] gpmc=["中信证券","东方财富","九鼎投资","润和软件"] 编写程序,显示列表中股票的代码和名称

zxg=["600030","300059","600053","300339"]
gpmc=["中信证券","东方财富","九鼎投资","润和软件"]
#代码开始
for i in range(len(zxg)):
    print(zxg[i],gpmc[i])

#代码结束

 5. 股票列表数据的查询

某人将自选股的股票代码存储在列表zxg,股票名称存储在列表gpmc中 zxg=["600030","300059","600053","300339"] gpmc=["中信证券","东方财富","九鼎投资","润和软件"] 编写程序,根据股票代码实现对自选股的查询 输入要查询的股票代码,如果股票代码在列表中,显示对应的股票名称,如果没有在列表中,显示股票不存在

zxg=["600030","300059","600053","300339"]
gpmc=["中信证券","东方财富","九鼎投资","润和软件"]
#代码开始
x = input("查询的股票代码")
n = 0
s = 0
for i in zxg:
    n += 1
    if x == i:
        s = 1
        break
if s == 1:
    print(gpmc[n-1])       
else:
    print("股票不存在")   

#代码结束

6. 股票列表数据的删除

某人将自选股的股票代码存储在列表zxg,股票名称存储在列表gpmc中 zxg=["600030","300059","600053","300339"] gpmc=["中信证券","东方财富","九鼎投资","润和软件"] 编写程序,根据股票代码实现对自选股的删除 输入要删除的股票代码,如果股票代码没有在列表中,显示股票不存在,如果股票代码在列表中,在zxg列表删除该代码,并将gpmc中对应的信息也删除.并显示股票已删除 最后输出两个列表的信息

zxg=["600030","300059","600053","300339"]
gpmc=["中信证券","东方财富","九鼎投资","润和软件"]
#代码开始
x = input("删除的股票代码")
n = 0
s = 0
for i in zxg:
   s += 1
   if x == i:
      zxg.remove(i)
      n = 1
      break

if n == 1:
   gpmc.pop(s-1)
   print("股票已删除")
else:
   print("股票不存在")
#代码结束
for i in range(len(zxg)):
   print(zxg[i],gpmc[i])

7. 股票列表数据的增加

某人将自选股的股票代码存储在列表zxg,股票名称存储在列表gpmc中 zxg=["600030","300059","600053","300339"] gpmc=["中信证券","东方财富","九鼎投资","润和软件"] 编写程序,根据股票代码实现对自选股的增加 (1)输入股票代码dm (2)如果股票代码dm在列表zxg中,显示股票已存在。 (3)否则输入股票名称mc。 (4)将代码dm加入列表zxg,将股票名称mc加入列表gpmc。 (5)显示股票已添加 最后输出两个列表的信息

zxg=["600030","300059","600053","300339"]
gpmc=["中信证券","东方财富","九鼎投资","润和软件"]
#代码开始
dm = input("增加的股票代码")
n = 0
for i in zxg:
   if dm == i:
      n = 1
      break
if n == 0:
   zxg.append(dm)
   mc = input("股票名称")
   gpmc.append(mc)
   print("股票已添加")
else:
   print("股票已存在")
#代码结束
for i in range(len(zxg)):
   print(zxg[i],gpmc[i])

8. 股票列表数据的管理

编写一个小程序,显示菜单如下

,

当用户输入选项后,执行相应的操作 直到输入5退出程序

1.定义zxg和gpmc列表

2.显示菜单项

3.使用永真循环 (1)接收用户的选择x (2)如果x是”1”,则执行新增股票的操作 (3)如果x是”2”,则执行删除股票的操作 (4)如果x是”3”,则执行查询股票的操作 (5)如果x是”4”,则执行显示股票的操作 (6)如果x是”5”,则退出循环

zxg=["600030","300059","600053","300339"]
gpmc=["中信证券","东方财富","九鼎投资","润和软件"]
print("1.股票增加2.股票删除3.股票查询4.显示列表5.退出")
#代码开始
while True:
    x = input("请输入选择")
    if x == "5":
        break
    elif x == "1":
        dm = input("增加股票的代码")
        n = 0
        for i in zxg:
            if dm == i:
                n=1
                break
        if n != 1:  
            mc = input("股票名称")
            zxg.append(dm)
            gpmc.append(mc)
            print("股票已添加")
        else:
            print("股票不存在")
    elif x == "2":
        sc = input("删除股票的代码")
        n1 = 0
        s = 0
        for i in zxg:
            s += 1
            if sc == i:
                zxg.remove(i)
                n1 = 1
                break
        if n1 == 1:
            gpmc.pop(s-1)
            print("股票已删除")
        else:
            print("股票不存在")
    elif x == "3":
        cx = input("查询的股票代码")
        n2 = 0
        s1 = 0
        for i in zxg:
            s1 += 1
            if cx == i:
                n2 = 1
                break
        if n2 == 1:
            print(gpmc[s1-1])
        else:
            print("股票不存在")
    elif x =="4":
        for i in range(len(zxg)):
            print(zxg[i],gpmc[i])

#代码结束

9. 选择题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/532052.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于SSM+Jsp+Mysql的农产品供销服务系统

开发语言&#xff1a;Java框架&#xff1a;ssm技术&#xff1a;JSPJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包…

windows系统安装mysql5.7

1、下载 下载路径&#xff1a;https://downloads.mysql.com/archives/community/ 2、创建配置文件my.ini 下载压缩包解压到安装目录&#xff08;本机解压后在D:\mysql-5.7.44-winx64&#xff09; 在bin的同级目录下创建my.ini文件 my.ini文件 [mysql] # 设置mysql客户端默认字符…

接口自动化测试(python+pytest+requests)

一、选取自动化测试用例 优先级高:先实现业务流程用例、后实现单接口用例功能较稳定的接口优先开展测试用例脚本的实现二、搭建自动化测试环境 核心技术:编程语言:python;测试框架:pytest;接口请求:requests安装/验证requests:命令行终端分别输入 pip install requests / p…

6.1Python之字典的初识

【1】字典的创建与价值 字典&#xff08;Dictionary&#xff09;是一种在Python中用于存储和组织数据的数据结构。元素由键和对应的值组成。其中&#xff0c;键&#xff08;Key&#xff09;必须是唯一的&#xff0c;而值&#xff08;Value&#xff09;则可以是任意类型的数据。…

国内如何实现GPT升级付款

本来想找国外的朋友代付的&#xff0c;但是他告诉我他的信用卡已经被绑定了他也升级了所以只能自己想办法了。就在一位博主下边发现了这个方法真的可以。只是需要与支付宝验证信息。刚开始不敢付款害怕被骗哈哈&#xff0c;我反诈骗意识绝对杠杠的 该方法就是我们办理一张虚拟…

3D可视化技术亮相高铁站,引领智慧出行新潮流

在科技飞速发展的今天&#xff0c;我们的生活正经历着前所未有的变革。高铁站作为现代交通的重要枢纽&#xff0c;也在不断地创新和进步。 3D可视化技术通过三维立体的方式&#xff0c;将高铁站内部和外部的结构、设施、流线等以更加直观、生动的形式呈现出来。乘客们只需通过手…

2、java语法之循环、数组与方法(找工作版)

写在前面&#xff1a;整个系列文章是自己学习慕课相关视频&#xff0c;进行的一个总结。文章只是为了记录学习课程的整个过程&#xff0c;方便以后查漏补缺&#xff0c;找到对应章节。 文章目录 一、Java循环结构1、while循环2、do-while循环3、for循环4、嵌套循环5、break语句…

我认识的建站公司老板都躺平了,每年维护费都大几十万。

这些老板们过的悠哉游哉&#xff0c;大富大贵没有&#xff0c;达到中产&#xff0c;活得舒服&#xff0c;没毛病。 企业官网每年需要交维护费主要是因为以下几个原因&#xff1a; 网站服务器和域名费用&#xff1a;企业官网需要通过服务器进行托管和访问&#xff0c;同时需要…

三种常见webshell工具的流量特征分析

又来跟师傅们分享小技巧了&#xff0c;这次简单介绍一下三种常见的webshell流量分析&#xff0c;希望能对参加HW蓝队的师傅们有所帮助。 什么是webshell webshell就是以asp、php、jsp或者cgi等网页文件形式存在的一种代码执行环境&#xff0c;主要用于网站管理、服务器管理、…

蓝桥杯第十二届c++大学B组详解

目录 1.空间 2.直线 3.路径 4.卡片 5.货物摆放 6.时间显示 7.砝码称重 8.杨辉三角 9.双向排序 10.括号序列 1.空间 题目解析&#xff1a;1Byte 8bit 1kb 1024B 1MB 1024kb; 先将256MB变成Byte 256 * 1024 * 1024; 再将32位 变成Byte就是 32 / 8 4&#xff1b;…

4.进程相关 2

8.内存映射 8.1 内存映射相关定义 创建一个文件&#xff0c;将保存在磁盘中的文件映射到内存中&#xff0c;后期两个进程之间对内存中的数据进行操作&#xff0c;大大减少了访问磁盘的时间&#xff0c;也是一种最快的 IPC &#xff0c;因为进程之间可以直接对内存进行存取 8.…

第十二届蓝桥杯省赛真题(C/C++大学B组)

目录 #A 空间 #B 卡片 #C 直线 #D 货物摆放 #E 路径 #F 时间显示 #G 砝码称重 #H 杨辉三角形 #I 双向排序 #J 括号序列 #A 空间 #include <bits/stdc.h> using namespace std;int main() {cout<<256 * 1024 * 1024 / 4<<endl;return 0; } #B 卡片…

JVM性能监控与调优——命令行工具

文章目录 1、概述2、jps:查看正在运行的Java进程3、jstat&#xff1a;查看JVM统计信息4、jinfo&#xff1a;实时查看和修改JVM配置参数5、jmap&#xff1a;导出内存映像文件和内存使用情况6、jhat:JDK自带堆分析工具7、jstack&#xff1a;打印JVM中线程快照8、jcmd&#xff1a;…

第一个Swift程序

要创建第一个Swift项目,请按照以下步骤操作: 打开Xcode。如果您没有安装Xcode,可以在App Store中下载并安装它。在Xcode的欢迎界面上,选择“Create a new Xcode project”(创建新Xcode项目)。在模板选择界面上,选择“App”(应用程序)。在应用模板选择界面上,选择“Si…

【静态分析】静态分析笔记01 - Introduction

参考&#xff1a; BV1zE411s77Z [南京大学]-[软件分析]课程学习笔记(一)-introduction_南京大学软件分析笔记-CSDN博客 ------------------------------------------------------------------------------------------------------ 1. program language and static analysis…

【JavaWeb】Jsp基本教程

目录 JSP概述作用一个简单的案例&#xff1a;使用JSP页面输出当前日期 JSP处理过程JSP 生命周期编译阶段初始化阶段执行阶段销毁阶段案例 JSP页面的元素JSP指令JSP中的page指令Include指令示例 taglib指令 JSP中的小脚本与表达式JSP中的声明JSP中的注释HTML的注释JSP注释 JSP行…

llinux进程控制

学习进程创建,fork/vfork 学习到进程等待 学习到进程程序替换, 微型shell&#xff0c;重新认识shell运行原理 学习到进程终止,认识$? fork函数 在linux中fork函数时非常重要的函数&#xff0c;它从已存在进程中创建一个新进程。新进程为子进程&#xff0c;而原进程为父进程…

PostgreSQL入门到实战-第十五弹

PostgreSQL入门到实战 PostgreSQL数据过滤(八)官网地址PostgreSQL概述PostgreSQL中LIKE命令理论PostgreSQL中LIKE命令实战更新计划 PostgreSQL数据过滤(八) 如何使用PostgreSQL LIKE运算符基于模式查询数据。 官网地址 声明: 由于操作系统, 版本更新等原因, 文章所列内容不一…

Commitizen:规范化你的 Git 提交信息

简介 在团队协作开发过程中&#xff0c;规范化的 Git 提交信息可以提高代码维护的效率&#xff0c;便于追踪和定位问题。Commitizen 是一个帮助我们规范化 Git 提交信息的工具&#xff0c;它提供了一种交互式的方式来生成符合约定格式的提交信息。 原理 Commitizen 的核心原…

人工智能分类算法概述

文章目录 人工智能主要分类算法决策树随机森林逻辑回归K-均值 总结 人工智能主要分类算法 人工智能分类算法是用于将数据划分为不同类别的算法。这些算法通过学习数据的特征和模式&#xff0c;将输入数据映射到相应的类别。分类算法在人工智能中具有广泛的应用&#xff0c;如图…
最新文章