计算机二级Python基本排序题-序号43(补充)

1. 在一组单词中,查找出所有长度最长的单词,如果给定的一组单词是:“cad” ,“VB”.“Python” ,“MATLAB” , “hel1o” , “world”

则输出结果为:the longest words are:
Python
MATLAB

def proc(strings):                     
    m = 0
    lst = []
    for i in range(len(strings)):   #查找最长的单词
        if len(strings[i]) > m:       
            m = len(strings[i])
    for i in range(len(strings)):
        if len(strings[i]) == m:       
            lst.append(strings[i])
    return lst       

strings = ['cad', 'VB', 'Python', 'MATLAB', 'hello', 'world']
result = proc(strings)
print("the longest words are:")
for item in result:
    print("{: >25}".format(item))

2. 程序接收用户输入的一个数字并判断是否为正整数,如果不是正整数,则显示“请输入正整数"并等待用户重新输入,直至输入正整数为止,并显示输出该正整数。

while True:
    try:
        a = eval(input('请输入一个正整数: '))    
        if a > 0 and type(a) == int:
            print(a)
            break
        else:
            print("请输入正整数")
    except:
        print("请输入正整数")

3. 将程序里定义好的std列表里的姓名和成绩与已经定义好的模板拼成一段话,显示在频幕上。

std = [['张三',90,87,95],['李四',83,80,87],['王五',73,57,55]]
modl = "亲爱的{}, 你的考试成绩是: 英语{}, 数学{}, Python语言{}, 总成绩{}.特此通知."

for st in std:
    cnt = 0
    for i in range(1,4):
        cnt += st[i]
    print(modl.format(st[0],st[1],st[2],st[3],cnt))

4. 获得用户输入的以逗号分隔的三个数字,记为a、b、c,以a为起始数值,b为前后相邻数的比值,c为数列长度,产生一个等比数列,将这个数列以逗号分隔的形式输出,最后一个元素输出后无逗号。

a, b, c = [eval(x) for x in input().split(',')]   #列表推导式:将a、b、c分别赋值
ls = []
for i in range(c) :
    ls.append(str(a * (b ** i)))
    print(",".join(ls))

等差数列通项公式: a n ​ = a 1 + ( n − 1 ) ⋅ d a_n​ =a_1+(n−1)⋅d an=a1+(n1)d
等比数列通项公式: a n = a 1 ⋅ r n − 1 a_n=a_1⋅r^{n−1} an=a1rn1

5. 以100为随机数种子,随机生成3个在1(含)到9(含)之间的随机整数,计算这三个随机整数的立方和。

import random
random.seed(100)  # 此处可多行
s = 0  # 
for i in range(3) :
    n = random.randint(1, 9)
    s += n ** 3 #此处可多行
    print(s)

6. 接收用户输入的以英文逗号分隔的一组数据,其中,每个数据都是整数或浮点数,打印输出这组数据中的最大值。

s = input("请输入一组数据: ")
ls = s.split(',')
lt = []
for i in ls:
    lt.append(eval(i))
print(max(lt))

7. 以26个小写字母和0~9数字为基础,以用户输入的数字为种子,随机生成10个8位密码,并将每个密码在单独一行打印输出。

import random

s = input("请输入随机种子: ")
ls = []
for i in range(26):
    ls.append(chr(ord('a')+i))
for i in range(10):
    ls.append(chr(ord('0')+i))
    
random.seed(eval(s))
for i in range(10):
    for j in range(8):
        print(ls[random.randint(0,35)],end='')
    print()

8. 利用random库和turtle库,在屏幕上绘制3个黑色的正方形,正方形的左下角点坐标和正方形边长由randint()函数产生,参数在代码中给出。

import turtle as t
import random as r
r.seed(1)   #以1为随机数种子
t.pensize(2)   #设置画笔宽度
for i in range(3):
    length = r.randint(20,80)
    x0 = r.randint(-100, 100)
    y0 = r.randint(-100, 100)

    t.penup()   #抬起画笔,移动时不绘制轨迹
    t.goto(x0,y0)   #将画笔移动到指定坐标(x0,y0)
    t.pd()   #pd()是pendown()的缩写
    for j in range(4):
        t.fd(length)
        t.seth(90 * (j + 1))
t.done()

9. 实现下面功能:让用户输入一个自然数n,如果n为奇数,输出表达式1+1/3+1/5+…+1/n的值;如果n为偶数,输出表达式1/2+1/4+1/6+…+1/n的值。输出结果保留2位小数。

def f(n):
    s = 0
    if n % 2 == 1:
        for i in range(1, n + 1, 2):
            s += 1/i
    else:
        for i in range(2, n + 1, 2):
            s += 1/i
    return s
n = int(input())
print('{:.2f}'.format(f(n)))

10. 获得用户输入的一个整数,记为n,以100为随机数种子,随机生成10个1到n之间的随机数,输出生成的随机数,数字之间以逗号分隔。

import random
n = eval(input('请输入一个整数:'))
random.seed(100)
for i in range(1,11):
    if i < 10:
        print(random.randint(1, n),end = ",")
    else:
        print(random.randint(1, n))

11. 若n整除n,则m是n的因子。例如:9的因子有1、3、9。定义一个因子函数,用于求整数n的所有因子列表。用户输入一个整数n,调用该因子函数,输出整数n所有因子的列表;如果输入非法字符,则检测异常,输出"输入有误!"。

def allFactor(n) :
    if n <= 1 :
        return[n]
    if n <= 3 :
        return[1, n]
i = 1
rlist = []
while i <= n :
    if n % i == 0 :
        rlist.append(i)
    i += 1
return rlist

try :
    n = eval(input("请输入一个正整数:"))
    print("整数{}的因子是:{}".format(n, allFactor(n)))
except :
    print("输入错误!")

12. 实现以下功能:data1.txt文件保存了一组汉字,输出该文件不同字符的数量。

f = open('data1.txt')
ls = []
for line in f:
    for c in line:
        if c not in ls:
            ls.append(c)
f.close()
print(len(ls))

13. 获得用户输入的三个整数,以逗号分隔,分别记为:n、m、k,其中n>k。以1为随机数种子,产生n个在k和m之间的随机整数(包括和m),将这些随机数输出,每个数一行。

import random as r
r.seed(1)
s = input("请输入三个整数 n,m,k:")
slist = s.split(",")
n, m, k = eval(slist[0]), eval(slist[1]), eval(slist[2])
for i in range(n) :
    print(r.randint(k, m))

总结

列表推导式

[表达式 for 变量 in 列表] 
[out_exp_res for out_exp in input_list]

或者 

[表达式 for 变量 in 列表 if 条件]
[out_exp_res for out_exp in input_list if condition]
a, b, c = [eval(x) for x in input().split(',')] #列表表达式
print('a:{0},b:{1},c:{2}'.format(a,b,c))
#输出结果:a:1,b:2,c:3

实例1:

>>> names = ['Bob','Tom','alice','Jerry','Wendy','Smith']
>>> new_names = [name.upper()for name in names if len(name)>3]
>>> print(new_names)
#['ALICE', 'JERRY', 'WENDY', 'SMITH']

实例2:

>>> multiples = [i for i in range(30) if i % 3 == 0]
>>> print(multiples)
#[0, 3, 6, 9, 12, 15, 18, 21, 24, 27]

字典推导式

{键表达式: 值表达式 for 迭代变量 in 可迭代对象}
{ key_expr: value_expr for value in collection }{键表达式: 值表达式 for 迭代变量 in 可迭代对象 if 条件}
{ key_expr: value_expr for value in collection if condition }

实例1:

listdemo = ['Google','Runoob', 'Taobao']
# 将列表中各字符串值为键,各字符串的长度为值,组成键值对
>>> newdict = {key:len(key) for key in listdemo}
>>> newdict
#{'Google': 6, 'Runoob': 6, 'Taobao': 6}

实例2:

>>> dic = {x: x**2 for x in (2, 4, 6)}
>>> dic
#{2: 4, 4: 16, 6: 36}
>>> type(dic)
#<class 'dict'>

集合推导式

{元素表达式 for 迭代变量 in 可迭代对象}
{ expression for item in Sequence }{元素表达式 for 迭代变量 in 可迭代对象 if 条件}
{ expression for item in Sequence if conditional }

实例1:

>>> setnew = {i**2 for i in (1,2,3)}
>>> setnew
#{1, 4, 9}

实例2:

>>> a = {x for x in 'abracadabra' if x not in 'abc'}
>>> a
#{'d', 'r'}
>>> type(a)
#<class 'set'>

元组推导式(生成器表达式)

(元素表达式 for 迭代变量 in 可迭代对象)
(expression for item in Sequence )(元素表达式 for 迭代变量 in 可迭代对象 if 条件)
(expression for item in Sequence if conditional )

实例:

>>> a = (x for x in range(1,10))
>>> a
#<generator object <genexpr> at 0x7faf6ee20a50>  # 返回的是生成器对象

>>> tuple(a)       # 使用 tuple() 函数,可以直接将生成器对象转换成元组
#(1, 2, 3, 4, 5, 6, 7, 8, 9)

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

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

相关文章

unique()函数

这篇博客是本人在学习算法中遇到的一个常用的函数&#xff0c;记录分享给大家 注意 &#xff1a;unique&#xff08;&#xff09;函数是删除相邻的重复元素&#xff0c;并且返回的是去重范围后的第一个元素的地址&#xff0c;左闭右开 #include <bits/stdc.h> using na…

SV-8004VP 网络对讲求助话筒,4个自定义按键

SV-8004VP网络对讲求助话筒&#xff0c;4个自定义按键 SV-8004VP是一款4按键求助对讲话筒&#xff0c;具有10/100M以太网接口&#xff0c;支持G.711音频编解码&#xff0c;其接收SIP网络的音频数据&#xff0c;实时解码播放&#xff0c;还配置了麦克风输入和扬声器输出。 SV-…

༺༽༾ཊ—设计-七个原则-模式—ཏ༿༼༻

第一原则&#xff1a;单一职责 一个类只负责一个功能领域中的相应职责&#xff1b; 接下来我们举一个代码例子&#xff0c;主要的功能实现是&#xff1a; 在主函数中运行调用描边工具和填充工具画矩形与圆形 首先写一个圆形类&#xff0c;里面只有一个方法用来返回string类型…

创意交融:集成自定义报表和仪表盘设计器,实现图标替换

前言 在现代数据分析领域&#xff0c;随着对报表和数据分析的需求不断增长&#xff0c;市场上涌现了许多嵌入式报表工具。这些工具能够与企业现有的OA、ERP、MES、CRM等应用系统深度集成&#xff0c;实现对业务数据的自助式分析。然而&#xff0c;在实际应用中&#xff0c;不同…

微信小程序定义并获取日志/实时log信息

步骤一&#xff1a;开通实时日志 可以在开发者工具->详情->性能质量->实时日志&#xff0c;点击前往&#xff0c;在浏览器打开we分析界面&#xff1a; 也可登录小程序管理后台&#xff0c;点击统计进入we分析&#xff1a; 在we分析界面找到性能质量&#xff0c;打开实…

C++(9.5)——浅谈new和delete的实现原理

(注:本文是针对上篇文章中C内存管理的两个关键字)两个关键字原理的解析&#xff0c;对于这两个关键字的使用并没有什么影响&#xff0c;如果只想得知两个关键字的使用方法&#xff0c;则可以直接跳过本篇文章&#xff09; 目录 1. 引入&#xff1a; 2.operator new 与 operat…

Fruit Market

此包包含194 个水果预制件,可随时用于您的下一个项目或游戏(并且对移动设备友好!)。所有模型都是低多边形的,带有精美的手绘纹理。技术细节 纹理尺寸 - 256x256、512x512、1024x1024 网格数量 - 149 材料数量 - 50 纹理数量 - 每个分辨率尺寸 50资产列表菠萝: 64 - 768 tr…

Unity之物理系统

专栏的上一篇角色控制器控制角色移动跳崖&#xff0c;这一篇来说说Unity的物理系统。 本篇小编还要带大家做一个碰撞检测效果实例&#xff0c;先放效果图&#xff1a;流星撞击地面产生爆炸效果 一、Rigidbody 我们给胶囊添加了 Rigidbody 组件它才有的重力&#xff0c;我们来…

Linux环境搭建FastDFS文件服务器(附带Nginx安装)

本文主要介绍在linux服务器如何搭建FastDFS文件服务器。大概分为9个步骤&#xff0c;由于内容较为繁琐。下面带你入坑&#xff01; 首先简单介绍一下FastDFS是淘宝资深架构师余庆老师主导开源的一个分布式文件系统&#xff0c;用C语言编写。适应与中小企业&#xff0c;对文件不…

芯片烧写工具

问题描述 最近出了一个机器变砖的问题&#xff0c;一些用户使用的设备&#xff0c;头一天晚上用的好好的&#xff0c;第二天来一上电开机就起不来了。 然后就寄回来&#xff0c;返厂维修。一些是因为部分电子器件坏了&#xff0c;还有一些是文件系统问题&#xff0c;重新升级一…

4、Redis高并发分布式锁实战

引言 在分布式系统中&#xff0c;保证数据的一致性和避免竞争条件是至关重要的。分布式锁是一种常用的机制&#xff0c;而Redis作为一款高性能的内存数据库&#xff0c;提供了简单而强大的分布式锁方案。本文将深入探讨如何利用Redis高并发分布式锁来解决分布式系统中的并发控…

【机器学习300问】8、为什么要设计代价函数(损失函数)?它有什么用?

一、先介绍一下线性回归模型 &#xff08;1&#xff09;基本概念理解 文字解释&#xff1a;线性回归模型顾名思义&#xff0c;他处理的回归问题&#xff0c;是监督学习的一种。线性回归模型是一种预测模型&#xff0c;其基础是假设目标值和输入值之间存在线性关系。通过一条最…

[zabbix] zabbix监控其他

一、温习zabbix自定义监控 二、zabbix 自动发现与自动注册 2.1 zabbix 自动发现 //zabbix 自动发现&#xff08;对于 agent2 是被动模式&#xff09; zabbix server 主动的去发现所有的客户端&#xff0c;然后将客户端的信息登记在服务端上。 缺点是如果定义的网段中的主机数…

71.网游逆向分析与插件开发-角色数据的获取-修复角色名与等级显示问题

内容参考于&#xff1a;易道云信息技术研究院VIP课 上一个内容&#xff1a;自动化助手UI显示角色数据-CSDN博客 码云地址&#xff08;ui显示角色数据 分支&#xff09;&#xff1a;https://gitee.com/dye_your_fingers/sro_-ex.git 码云版本号&#xff1a;0049452c079867779…

vue3+vite项目构建时报错npm ERR! code EPERMnpm ERR! syscall mkdir...

vscode终端中输入npm create vitelatest vueviteproject1 -- --vue命令后报错 具体报错如下&#xff1a; PS D:\project> npm create vitelatest vueviteproject1 -- --vue >> npm ERR! code EPERM npm ERR! syscall mkdir npm ERR! path D:\node\node_cache\_cac…

【软件测试】前端性能测试工具原理

不同于后端性能测试知识的琐碎、独立&#xff0c;这篇文章为你介绍前端性能测试工具WebPagetest&#xff0c;以一个具体网站为例&#xff0c;和你分析WebPagetest的用法&#xff0c;以及前端性能相关的主要概念与指标。 WebPagetest功能简介 WebPagetest&#xff0c;是前端性…

基于VGG-16的检测并清除杂草

目录 1 简介&#xff1a;检测并清除杂草 1.1 问题描述&#xff1a; 1.2 预期解决方案&#xff1a; 1.3 数据集&#xff1a; 1.4 图像展示&#xff1a; 2 数据预处理 2.1 数据集结构 2.2 部分数据分析 2.3 提取数据集 2.4 数据增强 2.5 构建数据集 3 使用VGG-16识别杂草图片 …

山海鲸:助力企业实现内外数据整合与价值挖掘

作为山海鲸的开发者&#xff0c;我们深知数字化转型对于企业发展的重要性。在不断钻研如何提升山海鲸可视化这款免费产品的实用性同时&#xff0c;也在不断推出各行实用解决方案&#xff0c;本文将介绍山海鲸企业数字化转型发展解决方案&#xff0c;探讨如何通过数据驱动创新&a…

WSL不同版本的Ubuntu更换清华镜像,加速Ubuntu软件下载速度

文章目录 不同版本的Ubuntu使用清华镜像&#xff0c;加速Ubuntu软件下载速度1. 备份源软件配置文件2. 复制镜像源3. 修改软件源配置文件4. 更新软件包列表&#xff0c;升级软件包等内容5. 从仓库中下载其它软件可能存在的问题 不同版本的Ubuntu使用清华镜像&#xff0c;加速Ubu…

Tuxera2024版本正式上线!(免费mac读写磁盘工具)

当您获得一台新 Mac 时&#xff0c;它只能读取 Windows NTFS 格式的 USB 驱动器。要将文件添加、保存或写入您的 Mac&#xff0c;您需要一个附加的 NTFS 驱动程序。Tuxera 的 Microsoft NTFS for Mac 是一款易于使用的软件&#xff0c;可以在 Mac 上打开、编辑、复制、移动或删…