【Python算法】算法练习(一)

news2024/9/27 7:19:39

❤️博客主页 iknow181
🔥系列专栏 Python、JavaSE、JavaWeb、CCNP
🎉欢迎大家点赞👍收藏⭐评论✍


在这里插入图片描述

目录

1、输出n以内的质数

2、求n以内最大的m个质数的和,并打印这些质数以及它们的和

方法一

方法二

3、将字符串里的大小写互转

4、使用蒙特卡洛方法计算圆周率

5、给定行、列数之后生成二维数组,如下所示:

方法一:用列表

方法二:直接加

6、制作一个简单的两位整数加减法试卷生成模板


1、输出n以内的质数

n = int(input('请输入n:'))
for i in range(2, n):
    for j in range(2, i):
        if i % j == 0:
            break
    else:
        print(i,end=' ')

2、求n以内最大的m个质数的和,并打印这些质数以及它们的和

方法一

n = int(input('请输入n:'))
m = int(input('请输入m:'))
sum1 = 0
list1 = []
for i in range(2,n):
    for j in range(2,i):
        if i % j == 0:
            break
    else:
        list1.append(i)
count = len(list1)
star = count - m
if m < count:
    while star < count:
        print(list1[star])
        sum1 += list1[star]
        star += 1
    print(sum1)
else:
    print(f'{m}太多了,{n}以内最多有{count}个质数,请重新输入!')

方法二

n = int(input('请输入n:'))
m = int(input('请输入m:'))
print(f'{n}以内最大的{m}个质数:', end=" ")
sum1 = 0
count = 0
num = n
while count < m:
    for j in range(2, num):
        if num % j == 0:
            break
    else:
        print(num, end=' ')
        sum1 += num
        count += 1
    num -= 1
print(f'\n这些质数和是:{sum1}')

3、将字符串里的大小写互转

ord()可将英文字母转换成ASC码的数字,小写和大写的英文字母之间相差32
chr()可将ASC码的数字转换成英文字母
例如:输入字符串"HEllO WorLD",将这个字符串中每个字母的大小写互转

str1 = input('请输入:')
print(f'输入:{str1}')
print(f'输出:', end=' ')
for i in range(len(str1)):
    if str1[i] >= 'A' and str1[i] <= 'Z':
        print(chr(ord(str1[i]) + 32), end=' ')
    elif str1[i] >= 'a' and str1[i] <= 'z':
        print(chr(ord(str1[i]) - 32), end=' ')
    else:
        print(str1[i],end=' ')

4、使用蒙特卡洛方法计算圆周率

计算过程如下:
在边长为2的正方形里,绘制一个半径为1的圆,然后模拟向正方形里随机放置豆子的过程,豆子不
能重叠,假设投进圆里的次数为:n,总的投掷次数为N
圆周率(pi)约等于4*n/N(正方形的面积为4,圆的面积为pi*r^2,两者相除,即可得到前面的
公式)

建模思想!

import random
while True:
    N = int(input('您要投多少次:'))
    n = 0
    count = 0
    while count < N:
        x = random.uniform(-1, 1)
        y = random.uniform(-1, 1)
        d = ((x ** 2) + (y ** 2)) ** (1 / 2)
        if d >= 0 and d <= 1:
            n += 1
        count += 1
    pi = 4 * n / N
    print(f'圆周率pi的值大约为:{pi}')
    con = input("continue(y/n):")
    if con.lower() == 'n':
        break

5、给定行、列数之后生成二维数组,如下所示:

01 02 03 04 05
06 07 08 09 10
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25

方法一:用列表

n = int(input('请输入行:'))
m = int(input('请输入列:'))
nm = n * m  # 最大数
length = len(str(nm))  # 看最大是几位数
star = 1  # 初始值
for i in range(n):
    for j in range(m):
        length1 = len(str(star))  # 当前数字的位数
        length2 = length - length1  # 当前数字前补零的个数
        starlist = [str(star)]
        count = 0
        while count < length2:
            starlist.insert(0, '0')
            count += 1
        starstr = ''.join(starlist)
        print(starstr, end=' ')
        star += 1
    print()

方法二:直接加

n = int(input('请输入行:'))
m = int(input('请输入列:'))
nm = n * m  # 最大数
star = 1  # 初始值
for i in range(n):
    for j in range(m):
        print('0' * (len(str(nm)) - len(str(star))) + str(star), end=' ')
        print(str(star).zfill(len(str(nm))), end=' ')
        star += 1
    print()

6、制作一个简单的两位整数加减法试卷生成模板

​​每次生成10道题,要求学生回答完毕后,给出得分,并标明哪些题目回答错误。同时询问学生是否继续进行测试,回答no即退出,回答yes即继续测试。

例如考试题目:
1. 10 + 20 =
2. 30 - 15 =
3. 45 + 70 =
....
10. 50 - 22 =
正确答案:
1. 10 + 20 = 20
2. 30 - 15 = 15
3. 45 + 70 = 115
....
10. 50 - 22 = 28
您的得分:90
您做错的题目是:
第1道
是否继续测试(yes/no)
import random
while True:
    print('考试题目:')
    worrylist = []  # 错题编号
    testlist = []  # 题目列表
    scores = 100  # 满分100分
    for i in range(10):
        a = random.randint(10,99)
        b = random.randint(10,99)
        c = random.choice('+-')
        problem = f'{i + 1}. {a} {c} {b} = '  # 题目
        problem1 = f'{a}{c}{b}'  # 式子
        d1 = int(input(problem))  # 输入的答案
        d2 = eval(problem1)  # 正确答案
        testlist.append(f'{problem}{d2}')
        if d1 != d2:
            worrylist.append(i + 1)
            scores -= 10
    print('正确答案:')
    for j in testlist:
        print(j)
    print(f'您的得分:{scores}')
    print('您做错的题目是:')
    for k in worrylist:
        print(f'第{k}道')
    con = input('是否继续测试(yes/no):')
    if con.lower() == 'no':
        break

在这里插入图片描述

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

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

相关文章

合肥中科深谷嵌入式项目实战——人工智能与机械臂(三)

订阅&#xff1a;新手可以订阅我的其他专栏。免费阶段订阅量1000 python项目实战 Python编程基础教程系列&#xff08;零基础小白搬砖逆袭) 作者&#xff1a;爱吃饼干的小白鼠。Python领域优质创作者&#xff0c;2022年度博客新星top100入围&#xff0c;荣获多家平台专家称号。…

postgresql14-sql基础(一)

初始化 在“开始”中运行pgadmin4&#xff0c;输入密码&#xff0c;连接实例&#xff0c;创建测试数据库&#xff1a;hrdb 开启查询工具面板。 https://download.csdn.net/download/hy19930118/88419281 SELECT version() AS "pg版本"简单查询 SELECT first_na…

性能测试支持结果抽样分析,执行机新增运行状态和CPU监控,MeterSphere开源持续测试平台v2.10.8 LTS版本发布

2023年10月30日&#xff0c;MeterSphere一站式开源持续测试平台正式发布v2.10.8 LTS版本。自2023年5月发布v2.10 LTS版本后&#xff0c;MeterSphere开源项目组坚持发布小版本&#xff0c;持续进行问题的修复更新&#xff0c;并针对部分功能进行优化。 本次发布的MeterSphere v…

C/C++ 作业题笔记

请计算下列代码运行结果 解析:

获取服务器或域控登录日志工具

SharpUserIP 功能简介 服务器登陆日志 (需管理员权限) 在域控或远程提取登录日志&#xff0c;快速获取域用户对应的 IP 地址 项目地址&#xff1a;https://github.com/lele8/SharpUserIP 使用说明 ___ _ _ _ ___ ___/ __| |_ __ _ _ _ _ _…

docker解决oracle中ORA-12514和ORA-03113问题

ORA-12514&#xff1a;TNS&#xff1a;监听程序当前无法识别连接描述符中请求的服务; 1、进入docke容器 docker exec -it 容器id bash 2、找到并修改listener.ora文件 查看oracle的位置 命令&#xff1a;cat /etc/profile 这是listener.ora文件的位置 /home/oracle/app/oracl…

输入输出缓冲区的作用,c++io流介绍,转换运算符(operator+类型)

目录 引入 输入输出缓冲区的作用 流 cio流 介绍 为什么要把流进行面向对象的设计呢? 原理 使用的注意点 istream类型对象转换为逻辑条件判断值 引入 转换运算符 文件io 介绍 示例 注意点 说明 利用字节流特性 字符串io 介绍 istringstream ostringstrea…

七、【图像添加水印】

文章目录 一、制作水印1、先新建图层2、新建文字图层并调好水印文字的大小与角度3、添加图层样式4、添加定义图案 二、添加水印 一、制作水印 1、先新建图层 2、新建文字图层并调好水印文字的大小与角度 3、添加图层样式 1、打开“描边” 2、选择“颜色” 4、添加定义图案 二…

【AI视野·今日NLP 自然语言处理论文速览 第六十期】Mon, 23 Oct 2023

AI视野今日CS.NLP 自然语言处理论文速览 Mon, 23 Oct 2023 (showing first 100 of 108 entries) Totally 100 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Computation and Language Papers Exploring Linguistic Probes for Morphological Generalization Autho…

电商数据采集抓取封装数据、淘宝、天猫、京东等平台商品详情API接口参数详解

电商数据采集抓取数据、淘宝、天猫、京东等平台的电商数据抓取&#xff0c;网页爬虫、采集网站数据、网页数据采集软件、python爬虫、HTM网页提取、APP数据抓包、APP数据采集、一站式网站采集技术、BI数据的数据分析、数据标注等成为大数据发展中的热门技术关键词。那么电商数据…

Android开发笔记(三)—Activity篇

活动组件Activity 启动和结束生命周期启动模式信息传递Intent显式Intent隐式Intent 向下一个Activity发送数据向上一个Activity返回数据 附加信息利用资源文件配置字符串利用元数据传递配置信息给应用页面注册快捷方式 启动和结束 &#xff08;1&#xff09;从当前页面跳到新页…

数据库软考知识

分布式数据库透明性 封锁 加上共享锁之后只能加共享锁&#xff0c;加上排他锁之后&#xff0c;啥锁都不能加。 分布式数据库特性 伪传递定理 SQL函数定义&#xff0c;有点冷 来了奥&#xff0c;更冷 存储过程 很重要&#xff0c;下午第二大题也是数据库

解决QtCreator11及更高版本使用JDK17时无法生成APK

1.修改gradle文件&#xff0c;增加如下内容&#xff1a; DEFAULT_JVM_OPTS"-Xmx5120m --add-exportsjava.base/sun.nio.chALL-UNNAMED \ --add-opensjava.base/java.langALL-UNNAMED \ --add-opensjava.base/java.lang.reflectALL-UNNAMED \ --add-opensjava.base/java.io…

用户优先:确保微信小程序手机号授权在新旧版本中无缝衔接

&#x1f52d; 嗨&#xff0c;您好 &#x1f44b; 我是 vnjohn&#xff0c;在互联网企业担任 Java 开发&#xff0c;CSDN 优质创作者 &#x1f4d6; 推荐专栏&#xff1a;Spring、MySQL、Nacos、Java&#xff0c;后续其他专栏会持续优化更新迭代 &#x1f332;文章所在专栏&…

SQL注入——二次注入漏洞

文章目录 SQL注入——二次注入漏洞1. 二次注入原理2. 二次注入需要具备的两个条件3. 二次注入实例4. 总结 SQL注入——二次注入漏洞 1. 二次注入原理 在第一次插入恶意数据的时候&#xff0c;只是对其中的特殊字符进行了转义&#xff0c;在写入数据库的时候还是原来的字符&am…

9.多线程之定时器与线程池

定时器与线程池 文章目录 定时器与线程池1. 定时器1.1 定时器的工作原理1.2 定时器的使用2.3 实现定时器 2. 线程池2.1 线程池存的优点2.2 线程池的使用2.3 线程池的原理2.3.1 工厂模式2.3.2 ThreadPoolExecutor类 2.4 实现线程池 1. 定时器 定时器也是软件开发中的一个重要组件…

【GEE】Google Earth Engine(GEE)注册详细教程无需教育邮箱

这个专栏真的是纠结了很久&#xff0c;不知道到底要不要分享自己在学习GEE的时候的一些经验和代码。因为本人在日常中使用Python和ENVI多点&#xff0c;虽然GEE也会用但不至于频繁使用&#xff0c;同时针对GEE其实官网给出了很多接口的使用方法&#xff0c;国内外也有很多人分享…

编译正点原子LINUXB报错make: arm-linux-gnueabihf-gcc:命令未找到

编译正点原子LINUXB报错make: arm-linux-gnueabihf-gcc&#xff1a;命令未找到 1.报错内容2.解决办法3./bin/sh: 1: lzop: not found4.编译成功 1.报错内容 make: arm-linux-gnueabihf-gcc&#xff1a;命令未找到CHK include/config/kernel.releaseCHK include/genera…

全面提升企业管理效率,助力企业持续增长——三叠云进销存解决方案

企业在生产经营过程中&#xff0c;高效的进销存管理是企业成功的关键因素之一。它不仅能够优化企业的资金流动&#xff0c;避免库存积压和断货现象&#xff0c;提高客户满意度&#xff0c;而且可以优化供应链&#xff0c;减少运营成本&#xff0c;提高生产和物流效率。三叠云正…

C语言 数据的存储2

如图所示代码&#xff1a; 代码运行结果为&#xff1a; 这是什么原因呢&#xff1f; 解析: 因为unsigned int是无符号整形&#xff0c;而我们的for循环的条件是 所以我们会一直循环下去&#xff0c;至于我们的结果为什么会是 一个unsigned int类型是4个字节&#xff0c;38位&am…