【python】py课后作业程序题5「PTA」

news2024/11/18 11:32:42

py字典合集

      • 7-1 Python猜数游戏
      • 7-2 jmu-python-分段函数
      • 7-3 循环求e的近似值(高教社,《Python编程基础及应用》习题6-7)
      • 7-4 jmu-python-判断是否构成三角形
      • 7-5 jmu-python-输入输出-计算字符串中的数
      • 7-6 jmu-python-随机生成密码
      • 7-7 jmu-python-重复元素判定
      • 7-8 jmu-python-从列表中删除元素
      • 7-10 找出字符串中出现次数最多的字符
      • 7-11 华氏温度到摄氏温度的转换(高教社,《Python编程基础及应用》习题3-9)

7-1 Python猜数游戏

猜数字游戏编程:计算机随机产生一个0~100以内的正整数,用户输入一个数对其进行猜测,程序对其与随机产生的被猜数进行比较,并提示大了(“Too big”)、小了(“Too small”),还是相等(“Lucky You!”)。如果猜到,则结束程序。如果超过8次都没有猜到,则提示“Game Over!”,并结束程序。如下图:
在这里插入图片描述

提示:随机因子seed设置为1(防止调试错误)

输入格式:
每行给出一个用户的输入,直到猜中或者超过8次还没有猜中。

输出格式:
每次在一行中输出相应的猜测结果,直到输出猜对的结果“Lucky You!”或“Game Over!”则结束。

输入样例:
56
25
12
20
16
18
17
输出样例:
在这里给出相应的输出。例如:

Too big
Too big
Too small
Too big
Too small
Too big
Lucky You!

思路:
很简单,首先生成随机数,然后套个while循环次数设定为8次,每次循环加一,然后判断输入的字符,成功修改flag并break。

代码区:

import random

random.seed(1)
cnt = 0
flag = 0
res = random.randint(0, 101)
while cnt < 8:
    cnt += 1
    ans = eval(input())
    if ans > res:
        print("Too big")
    elif ans < res:
        print("Too small")
    else:
        print("Lucky You!")
        flag = 1
        break
if flag == 0:
    print("Game Over!")

7-2 jmu-python-分段函数

本题目要求计算下列分段函数f(x)的值(x为从键盘输入的一个任意实数):
在这里插入图片描述

输入格式:
输入在一行中给出实数 x。

输出格式:
在一行中按“f(x)=result”的格式输出,其中x与result都保留两位小数。

输入样例:
0.76
输出样例:
f(0.76)=1.20
思路:
简单,除了输出格式需要注意其他没了
代码区:

def f(x):
    if x < 3:
        return 1.2
    elif x == 3:
        return 10
    else:
        return 2 * x + 1

x = eval(input())
print("f({:.2f})={:.2f}".format(x, f(x)))

7-3 循环求e的近似值(高教社,《Python编程基础及应用》习题6-7)

编写一个程序,从键盘读取k,计算e的近似值(保留10位小数)。

在这里插入图片描述

输入格式:

5的正整数k

输出格式:
e的近似值(保留10位小数)

输入样例:
6
输出样例:
2.7180555556

思路:
我首先定义了一个递归函数来取n!,然后就是累加。

代码区:

def f(n):
    if n == 0:
        return 1
    return n * f(n - 1)

k = int(input())
e = 0
for i in range(k + 1):
    e += 1 / f(i)
print("{:.10f}".format(e))

7-4 jmu-python-判断是否构成三角形

输入三角形的三边,判断是否能构成三角形。若能构成输出yes,否则输出no。

输入格式:
在一行中直接输入3个整数,3个整数之间各用一个空格间隔,没有其他任何附加字符。

输出格式:
直接输出yes或no,没有其他任何附加字符。

输入样例1:
3 4 5
输出样例1:
yes
输入样例2:
1 2 3
思路:
就是非常简单的判断语句。

代码区:

nums = [int(x) for x in input().split()]
if nums[0] + nums[1] <= nums[2] or nums[0] + nums[2] <= nums[1] or nums[1] + nums[2] <= nums[0]:
    print("no")
else:
    print("yes")

7-5 jmu-python-输入输出-计算字符串中的数

将字符串中的每个数都抽取出来,然后统计所有数的个数并求和。

输入格式:
一行字符串,字符串中的数之间用1个空格或者多个空格分隔。

输出格式:
第1行:输出数的个数。
第2行:求和的结果,保留3位小数。

输入样例:
2.1234 2.1 3 4 5 6
输出样例:
6
22.223

思路:
先全部存入列表,然后调用sum方法求和

代码区:

nums = [eval(x) for x in input().split()]
print(len(nums))
print("{:.3f}".format(sum(nums)))

7-6 jmu-python-随机生成密码

新建一个字符列表,这个列表中的内容从前到后依次包含小写字母、大写字母、数字。 形如[‘a’,…,‘z’,‘A’,…,‘Z’,‘0’,…‘9’]
建议:使用代码生成该字符列表。

分别输入随机数的种子x(整型),随机生成的密码个数n,每个密码长度m。
每个密码包含的m个字符是从上述字符列表中随机抽取 。
注意:本题不要用sample函数,否则答案错误。

输入格式:
种子x (注意:需将x转换为整数型再进行设置)
密码个数n
每个密码的长度m

输出格式:
n行密码、每行m位。

输入样例:
1
10
8
输出样例:
iK2ZWeqh
FWCEPyYn
gFb51yBM
WXaSCrUZ
oL8g5ubb
bPIa84yR
nBUbHoWC
8FJowoRo
WD8s7bA1
6J7PglOU

思路:
首先将所有大小写字母和数字(这里采用了string库中的读取字母和数字的方法)存入strList中作为总表,然后每次循环将其中下标通过随机数得出取出对应的字符存入pwd中作为密码列表,最后通过join方法来输出为字符

代码区:

import string
import random
strlist = []
str1 = string.ascii_letters + string.digits
for x in str1:
    strlist.append(x)
x, n, m = int(input()), int(input()), int(input())
random.seed(x)
for i in range(n):
    pwd = []
    for j in range(m):
        pwd.append(strlist[random.randint(0, 61)])
    print("".join(pwd))

7-7 jmu-python-重复元素判定

每一个列表中只要有一个元素出现两次,那么该列表即被判定为包含重复元素。
编写函数判定列表中是否包含重复元素,如果包含返回True,否则返回False。
然后使用该函数对n行字符串进行处理。最后统计包含重复元素的行数与不包含重复元素的行数。

输入格式:
输入n,代表接下来要输入n行字符串。
然后输入n行字符串,字符串之间的元素以空格相分隔。

输出格式:
True=包含重复元素的行数, False=不包含重复元素的行数
,后面有空格。

输入样例:
5
1 2 3 4 5
1 3 2 5 4
1 2 3 6 1
1 2 3 2 1
1 1 1 1 1
输出样例:
True=3, False=2

思路:
采用了字典思想,每次出现就对应字典键值加一,如果出现2的就判断为重复。
dic.get(方法为取第一个参数的值,如不存在就即为第二个参数)

代码区:

trueL = 0
n = int(input())
for i in range(0, n):
    strL = input()
    dic = {}
    for c in strL.split(" "):
        dic[c] = dic.get(c, 0) + 1
        if dic[c] == 2:
            trueL += 1
            break
print("True={0}, False={1}".format(trueL, n - trueL))

7-8 jmu-python-从列表中删除元素

删除列表中所有符合条件的值。

输入格式:
输入n,代表要测试n次。每次测试:
首先,输入1行字符串(字符串内的元素使用空格分隔)
然后,输入要删除的元素x。

输出格式:
输出删除元素x后的每行字符串。如果元素全部被删除,则输出空行。
注意:行尾不得有多余的空格。

输入样例:
5
1 1 1 2 1 2 1 1 1
1
1 1 1 2 2 2 1 1 1
2
ab ab ab cd cd de de
ab
1 1 1 1
1
x y x x x z
t
输出样例:
2 2
1 1 1 1 1 1
cd cd de de

x y x x x z

思路:
如果是需要删除的元素就不加入新列表,否则就加入新列表,实现删除的效果、

代码区:

n = int(input())
for i in range(0, n):
    list = input().split()
    ch = input()
    newL = []
    for x in list:
        if x != ch:
            newL.append(x)
    print(" ".join(newL))

7-10 找出字符串中出现次数最多的字符

本题目要求读入一个字符串,统计字符串中每个字符出现的次数,输出现次数最多(输入的数据中,出现次数最多的字符唯一)的字符以及次数。

在这里给出一组输入。例如:

输入样例:
xabaaccd1ma1b
输出样例:
a,4

思路:
使用字典,将输入存入字典,然后在通过sorted进行按照值排序,最后输出

代码区:

zifu = input()
dic = {}
for x in zifu:
    dic[x] = dic.get(x, 0) + 1
dicNew = sorted(dic.items(), key = lambda x: x[1])
print("{0},{1}".format(dicNew[-1][0], dicNew[-1][1]))

7-11 华氏温度到摄氏温度的转换(高教社,《Python编程基础及应用》习题3-9)

从键盘读取华氏温度,转换成摄氏温度并输出,保留1位小数。
转换公式为:c=5/9*(f-32), 其中,f为华为温度,c为摄氏温度。

输入格式:
华氏温度

输出格式:
摄低温度

输入样例:
100
输出样例:
37.8

思路:
过于简单,不讲

代码区:

n1 = eval(input())
print("{:.1f}".format(5 / 9 * (n1 - 32)))

新手上路,(几乎不会是最优解,轻点打)有错请指正;

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vscode使用CMake Tool插件构建第一个CMake的helloworld工程

vscode使用CMake Tool插件构建第一个CMake的helloworld工程一、linux环境准备1.1 CMake安装1.2 gcc/g的安装二、vscode 插件安装2.1 C扩展2.2 CMake Tool三、使用CMake构建第一个工程3.1 创建工程目录3.2 使用CMake Tool创建第一个Project3.3 Configure 第一个project四、构建工…

Java中序列化接口Serializable的serialVersionUID的作用

原文网址&#xff1a;Java中序列化接口Serializable的serialVersionUID的作用_IT利刃出鞘的博客-CSDN博客 简介 本文介绍Java中序列化接口Serializable的serialVersionUID的作用。 序列化与反序列化 含义 序列化&#xff1a;将java对象转化为字节序列。反序列化&#xff1a…

【mysql】索引的基本使用

文章目录1. 索引的声明与使用1.1 索引的分类1.2 创建索引1.2.1 创建表的时候创建索引&#xff08;隐式&#xff09;1.2.2 在已经存在的表上创建索引&#xff08;显式&#xff09;1、创建普通索引2、创建唯一索引3、主键索引4、创建单列索引5、创建联合索引6、创建全文索引7、创…

33、基于STM32的计时器(Proteus仿真+程序)

编号&#xff1a;33 基于STM32的计时器 功能描述&#xff1a; 使用proteus 软件设计一个基于STM32的家用计时器&#xff0c;该系统包含多个按键、LED运行灯和时间显示(时间显示是LCD1602) 其功能如下: 1、利用按键实现设置计时时间功能&#xff0c;时间格式:AB:CD:E 例如01:5…

【攻防世界】江苏工匠杯 Web easyphp

打开页面是一个代码审计的题目&#xff0c;是我不太熟悉的东西&#xff0c;但是没关系&#xff0c;我们可以学是吧&#xff0c;以下为源代码 <?php highlight_file(__FILE__); $key1 0; $key2 0;$a $_GET[a]; $b $_GET[b];if(isset($a) && intval($a) > 60…

【ES实战】ES集群节点迁移与缩容

ES集群节点迁移与缩容 文章目录ES集群节点迁移与缩容master节点迁移场景一场景二场景三data节点迁移数据迁移操作1、查询集群原来的配置2、清空节点数据3、检查是否排空数据迁移原则缩容前置检查项master节点迁移 场景一 集群上的master部署情况&#xff0c;一台机器上同时部…

智能化IT运维平台建设方案,基于智和信通运维体系的高敏捷二次开发

随着企业信息进程不断加速&#xff0c;运维人员需要面对越来越复杂的业务和越来越多样化的用户需求&#xff0c;不断扩展的应用需要越来越合理的模式、越来越智能的工具来保障运维能灵活便捷、安全稳定地开展。企业网络规模的不断扩大&#xff0c;从初期的几台服务器发展到庞大…

Python3 | vscode配置环境

vscode版本&#xff1a;1.74.2python版本&#xff1a;3.9.0win10系统 准备工作&#xff0c;在win10系统 1&#xff0c;安装python3&#xff0c;配置环境变量2&#xff0c;安装vscode 接下来&#xff1a;就可以在vscode配置python环境 1&#xff0c;下载和安装python插件 快…

2022年总结以及2023年的计划

2022年总结以及2023年的计划 文章目录2022年总结以及2023年的计划年终复盘投资理财学习方面前端方面&#xff1a;后端方面&#xff1a;数据库&#xff1a;读书&#xff1a;疫情工作爱情新的一年的展望按照每年的惯例&#xff0c;我每年的总结&#xff0c;复盘会在这几天完成。 …

软件测试精准定位BUG小技巧

目录 一、前置知识 二、定位技巧 一、前置知识 1. 熟透系统业务、团队成员情况 2. 熟悉使用F12或抓包工具 3. 了解HTTP/HTTPS协议&#xff0c;能够区分请求URL、请求头、请求体、入参、响应数据、响应码 4. 具备操作常规Linux命令&#xff0c;能否登入服务器查看Log日志&…

通信原理 | 波段的划分

波段(wave band) 在无线电技术中,波段(wave band)这个名词具有两种含义。 电磁波频谱的划分,例如长波、短波、超短波等波段。 发射机、接收机等设备的工作频率范围的划分。若把工作频率范围分成几个部分,这些部分也称为波段,例如三波段收音机等。 波段划分 波段通常是…

Python实现A股股市情感分析,含数据集可直接运行

Python实现A股股市情感分析&#xff0c;含数据集可直接运行 Stock Market Sentiment Analysis: 股市情感分析 完整代码下载地址&#xff1a;Python实现A股股市情感分析 情绪与股市 情绪与股市关系的研究由来已久&#xff0c;情绪是市场的一个重要影响因素已成为共识。 15年…

【设计模式】状态模式

状态模式 状态机 在操作系统的调度中会存在三种状态&#xff1a;运行、就绪、阻塞。 这是比较典型的状态机的例子。 做产品的时候&#xff0c;我们总能遇到一些比较复杂的逻辑问题&#xff0c;而普通的流程图&#xff0c;或时序图对于对象和状态的解读缺乏直观的描述。 这…

2.16 SPI协议的4种模式

文章目录1、简介2、SPI通讯模式2.1 模式02.2 模式12.3 模式22.4 模式32.5 总述1、简介 四线控制 SDO - 主设备数据输出&#xff0c;从设备输入 对应MOSI SDI - 主设备数据输入&#xff0c;从设备输出 对应MISO SCLK - 时钟信号&#xff0c;由主设备产生 CS - 从设备使能信号&a…

java接口的静态方法

目前java中已经支持定义静态方法 但需要注意一个点 我们先把代码写出来 我们创建一个包 下面创建一个接口 subInterface 接口参考代码如下 public interface subInterface {static void show2() {System.out.println("来自接口的静态方法");} }这里 我们就将 sho…

【C递归和迭代】兔子繁殖问题、青蛙跳台阶问题和汉诺塔问题

【C递归】前言一、兔子繁殖问题&#xff08;一&#xff09;题目描述&#xff08;二&#xff09;解题1.递归做法&#xff08;1&#xff09;成兔&#xff08;i&#xff09;分析&#xff08;ii&#xff09;代码&#xff08;iii&#xff09;代码分析&#xff08;2&#xff09;幼兔&…

C语言实现简易版扫雷

扫雷对于很多人是一种回忆&#xff0c;那么我们如何用C语言程序去实现它呢&#xff1f;这个是在浏览器找到的一个扫雷游戏我用程序实现它利用到字符数组&#xff0c;将一个类似棋盘的东西打印出来&#xff0c;让人们输入坐标&#xff0c;然后进行扫雷。为了程序的简易我一共设计…

论文阅读-社交媒体上的谣言检测:数据集、方法和机会

论文链接&#xff1a;https://aclanthology.org/D19-5008.pdf 目录 摘要 引言 1.1谣言检测 1.2 问题陈述 1.3 用户立场 2 数据集和评估指标 2.1 数据集 2.2 评价指标 3 特点和方法 3.1使用内容信息的方法 3.2 利用用户信息的方法 3.3 基于传播路径和网络的方法 3.4…

volatile 禁止指令重排序

计算机在执行程序时&#xff0c;为了提高性能&#xff0c;编译器和处理器常常会对指令重排&#xff0c;一般分为以下三种&#xff1a; 源代码 -> 编译器优化的重排 -> 指令并行的重排 -> 内存系统的重排 -> 最终执行指令单线程环境里面确保最终执行结果和代码顺序的…

AWS人工智能主题学习月:深度学习入门笔记

目录 一、深度学习入门课程的学习重点&#x1f4d5; 二、简单介绍一下深度学习和神经网络&#x1f4a1; 1.深度学习 2.神经网络 3.深度学习储备知识拓展 三、深度学习生产生活实际案例&#x1f697; 四、深度学习的框架介绍&#x1f333; 总结 深度学习是机器学习中的一…