Python习题详解

news2025/5/16 20:14:55

练习:

1,计算100以内奇数的和

#计算100以内所有奇数的和
sum = 0
# n = 1
# while n < 100:
# # sum = sum + n
# sum += n
# # n = n + 2
# n += 2
# print(sum)
n = 99 #求偶数时n = 100
while n > 0:
    sum += n
    # n = n - 2
    n -= 2
print(sum)

2,打印直角三角形

*
**
***
****
*****
******
layer = int(input("请输入要打印的层数:")) #layer=3
index = 1
while index <= layer: #layer=3
    #打印*
    j = 1
    while j <= index: #index = 1 2 3
        print("*",end="")
        j += 1
    print() #换行
    index += 1 # index = 2 3 4

3,打印九九乘法表

i = 1
while i <= 9:
    j = 1
    while j <= i:
        print("%s * %s = %s "%(j,i,(i*j)),end="")
        j += 1
    print() #换行
    i += 1

优化:

i = 1
while i <= 9:
    j = 1
    while j <= i:
        res = i * j
        if res < 10:
            print("%s * %s = %s "%(j,i,(i*j)),end="")
        else:
            print("%s * %s = %s "%(j,i,(i*j)),end="")
        j += 1
    print() #换行
    i += 1

4,判断一个数是否为质数(质数)

质数又称为素数,一个大于1的自然数,除了1和它本身之外,不能被其他自然数整数的数叫做质 数,最小的质数是2,它是唯一一个偶数质数,例如:2,3,5,7,11,13,17等

#判断一个数是否为质数(素数)
num = int(input("请输入一个数:"))
if num <=1:
    print("这个数不是质数")
elif num == 2:
    print("这个数是质数")
else:
    i = 2
    while i < num:
        if num % i == 0:
            print("这个数不是质数")
            break
        i += 1
    else:
        print("这个数是质数")

5,实现猜单词的小游戏

小提示:
import random
word = ("easy","python","difficult","hello")
random.choice(word)
将单词的字母顺序打乱
random.randrange()
len()

import random

dir(random) ----- 查看某个模块(random)的所有的方法

help() ----- 调取帮助文档

import random
WORDS = ("import","pyhon","hello","easy","difficult")
print("欢迎来到猜单词游戏!请将乱序的单词组合成正确的单词")
iscontinue = "Y"
while iscontinue == "Y" or iscontinue == "y" or iscontinue == "YES":
    words = random.choice(WORDS)
    right = words
    # print(words)
    #打乱顺序
    newword = ""
    while words:
        position = random.randrange(len(words))
        # print(position)
        # newword = newword + words[position]
        newword += words[position]
        # print(newword)
        words = words[:position]+words[(position+1):]
    print("乱序后的单词是:",newword)
    guess = input("请你猜单词:")
    """
    if guess == right :
        print("恭喜你,猜对了!")
    else:
        print("抱歉,猜错了!")
    """
    while guess != right and guess != "":
        print("抱歉,猜错了!")
        guess = input("请你继续猜:")
    if guess == right :
        print("恭喜你,猜对了!")
    iscontinue = input("你是否继续游戏Y/N:")

6,实现两个数的交换(用户输入两个数,存储到内存中的)

num1 = int(input("请输入第一个数:"))
num2 = int(input("请输入第二个数:"))
#方法一:取中间变量
# temp = num1
# num1 = num2
# num2 = temp
#方法二:求和法
# num1 = num1 + num2 # 30 = 10 + 20
# num2 = num1 - num2 # 30 - 20 = 10
# num1 = num1 - num2 # 30 - 10 = 20
# 方法三:异或交换法(python独有 引入了寄存器)
num1,num2 = num2,num1
print("交换后的num1 = %s ,num2 = %s"%(num1,num2))

7,一个自然数与3的和是5的倍数,以3的差是6的倍数,这个自然数最小是多少?(while)

# index = 0
# while True:
for i in range(1000):
    if (i + 3) % 5 == 0 and (i - 3 ) % 6 == 0:
        print(i)
        break
    i += 1

8,在400~500之间求一个数,它被2取余1,被5取余是3,被8取余是1,这个数是多少?

for i in range(400,501):
    if i % 2 == 1 and i % 5 == 3 and i % 8 == 1:
        print(i)
        break

9,打印等腰三角形

layer = int(input("请输入要打印的层数:"))
#每一行
for i in range(1,layer+1):
    #计算空格的个数
    sapce_num = layer - i
    for j in range(0,sapce_num):
        print(" ",end="")
    #计算*的个数
    star_num = 2 * i - 1
    for j in range(0,star_num):
        print("*",end="")
    print("")

10,打印实心菱形

layer = int(input("请输入要打印的层数:"))
while layer % 2 == 0:
    layer = int(input("请重新输入要打印的层数(注意要输入奇数行):"))
#上半部分
for i in range(1,layer // 2 + 2): #上半部分多打印一行 layer // 2 + 1 前闭后开的区间
    #计算空格的个数
    sapce_num = layer - i
    for j in range(0,sapce_num):
        print(" ",end="")
    #计算*的个数
    star_num = 2 * i - 1
    for j in range(0,star_num):
        print("*",end="")
    print("")
#下半部分
for i in range(layer // 2 ,0,-1):
    #计算空格的个数
    sapce_num = layer - i
    for j in range(0,sapce_num):
        print(" ",end="")
    #计算*的个数
    star_num = 2 * i - 1
    for j in range(0,star_num):
        print("*",end="")
    print("")

11,打印空心菱形

layer = int(input("请输入要打印的层数:"))
while layer % 2 == 0:
    layer = int(input("请重新输入要打印的层数(注意要输入奇数行):"))
#上半部分
for i in range(1,layer // 2 + 2): #上半部分多打印一行 layer // 2 + 1 前闭后开的区间
    #计算空格的个数
    sapce_num = layer - i
    for j in range(0,sapce_num):
        print(" ",end="")
    #计算*的个数
    star_num = 2 * i - 1
    for j in range(0,star_num):
        #判断一下是否是第一个和最后一个
        if j == 0 or j == star_num - 1:
            print("*",end="")
        else:
            print(" ",end="")
    print("")
#下半部分
for i in range(layer // 2 ,0,-1):
    #计算空格的个数
    sapce_num = layer - i
    for j in range(0,sapce_num):
        print(" ",end="")
    #计算*的个数
    star_num = 2 * i - 1
    for j in range(0,star_num):
        #判断一下是否是第一个和最后一个
        if j == 0 or j == star_num - 1:
            print("*",end="")
        else:
            print(" ",end="")
    print("")

12,打印两个组合在一起的三角形

layer = int(input("请输入要打印的层数:"))
while layer % 2 == 0:
    layer = int(input("请重新输入要打印的层数(注意要输入奇数行):"))
#上半部分
for i in range(1,layer // 2 + 2): #上半部分多打印一行 layer // 2 + 1 前闭后开的区间
    #计算空格的个数
    sapce_num = layer - i
    for j in range(0,sapce_num):
        print(" ",end="")
    #计算*的个数
    star_num = 2 * i - 1
    for j in range(0,star_num):
        #判断一下是否是第一个和最后一个
        if j == 0 or j == star_num - 1 or i == layer // 2 + 1:#i == layer // 2 +
        1判断是不是最后一行
            print("*",end="")
        else:
            print(" ",end="")
    print("")
#下半部分
for i in range(layer // 2 ,0,-1):
    #计算空格的个数
    sapce_num = layer - i
    for j in range(0,sapce_num):
        print(" ",end="")
    #计算*的个数
    star_num = 2 * i - 1
    for j in range(0,star_num):
    #判断一下是否是第一个和最后一个
        if j == 0 or j == star_num - 1:
            print("*",end="")
        else:
            print(" ",end="")
    print("")

13,打印圣诞树

layer = int(input("请输入要打印的层数:"))
while layer % 2 == 0:
    layer = int(input("请重新输入要打印的层数(注意要输入奇数行):"))
#上半部分
for i in range(1,layer // 2 + 2): #上半部分多打印一行 layer // 2 + 1 前闭后开的区间
    #计算空格的个数
    sapce_num = layer - i
    for j in range(0,sapce_num):
        print(" ",end="")
    #计算*的个数
    star_num = 2 * i - 1
    for j in range(0,star_num):
        #判断一下是否是第一个和最后一个
        if j == 0 or j == star_num - 1 or i == layer // 2 + 1 or j == star_num
        // 2:#i == layer // 2 + 1判断是不是最后一行 j == star_num // 2判断是不是中间那一列
            print("*",end="")
        else:
            print(" ",end="")
    print("")
#下半部分
for i in range(layer // 2 ,0,-1):
    #计算空格的个数
    sapce_num = layer - i
    for j in range(0,sapce_num):
        print(" ",end="")
    #计算*的个数
    star_num = 2 * i - 1
    for j in range(0,star_num):
        #判断一下是否是第一个和最后一个
        if j == star_num // 2:
            print("*",end="")
        else:
            print(" ",end="")
    print("")

14,打印以下图形

layer = int(input("请输入要打印的层数:"))
while layer % 2 == 0:
    layer = int(input("请重新输入要打印的层数(注意要输入奇数行):"))
#上半部分
for i in range(1,layer // 2 + 2): #上半部分多打印一行 layer // 2 + 1 前闭后开的区间
    #计算空格的个数
    sapce_num = layer - i
    for j in range(0,sapce_num):
            print(" ",end="")
    #计算*的个数
    star_num = 2 * i - 1
    for j in range(0,star_num):
        #判断一下是否是第一个和最后一个
        if j == 0 or j == star_num - 1 or i == layer // 2 + 1 or j == star_num
        // 2:#i == layer // 2 + 1判断是不是最后一行 j == star_num // 2判断是不是中间那一列
            print("*",end="")
        else:
            print(" ",end="")
    print("")
#下半部分
for i in range(layer // 2 ,0,-1):
    #计算空格的个数
    sapce_num = layer - i
    for j in range(0,sapce_num):
        print(" ",end="")
    #计算*的个数
    star_num = 2 * i - 1
    for j in range(0,star_num):
        #判断一下是否是第一个和最后一个
        if j == 0 or j == star_num - 1 or j == star_num // 2:
            print("*",end="")
        else:
            print(" ",end="")
    print("")

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

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

相关文章

【多线程】多线程案例——单例模式详解(包含懒汉模式,饿汉模式)

单例模式 &#x1f334;饿汉模式&#x1f38d;懒汉模式&#x1f338;单线程版&#xff08;线程不安全&#xff09;&#x1f338;多线程版&#x1f338;多线程版(改进) ⭕总结 单例模式是校招中最常考的 设计模式之⼀. 啥是设计模式? 设计模式好⽐象棋中的 “棋谱”. 红⽅当头…

AtCoder ABC342 A-D题解

华为出的比赛&#xff1f; 好像是全站首个题解哎&#xff01; 比赛链接:ABC342 Problem A: 稍微有点含金量的签到题。 #include <bits/stdc.h> using namespace std; int main(){string S;cin>>S;for(int i0;i<s.size();i){if(count(S.begin(),S.end(),S[i…

多维时序 | Matlab实现基于VMD-DBO-GRU、VMD-GRU、GRU的多变量时间序列预测

多维时序 | Matlab实现基于VMD-DBO-GRU、VMD-GRU、GRU的多变量时间序列预测 目录 多维时序 | Matlab实现基于VMD-DBO-GRU、VMD-GRU、GRU的多变量时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 Matlab实现基于VMD-DBO-GRU、VMD-GRU、GRU的多变量时间序列预测…

书生·浦语大模型实战营第六节课作业

基础作业 python run.py --datasets ceval_gen --hf-path /root/model/Shanghai_AI_Laboratory/internlm2-chat-7b/ --tokenizer-path /root/model/Shanghai_AI_Laboratory/internlm2-chat-7b/ --tokenizer-kwargs padding_sideleft truncationleft trust_remote_codeTrue --m…

嵌入式软件分层设计的思想分析

“嵌入式开发&#xff0c;点灯一路发” 那今天我们就以控制LED闪烁为例&#xff0c;来聊聊嵌入式软件分层: ——————————— | | | P1.1 |-----I<|--------------<| | | | P2.1 |-------------/ ---------…

Seata分布式事务实战AT模式

目录 分布式事务简介 典型的分布式事务应用场景 两阶段提交协议(2PC) 2PC存在的问题 什么是Seata&#xff1f; Seata的三大角色 Seata AT模式的设计思路 一阶段 二阶段 Seata快速开始 Seata Server&#xff08;TC&#xff09;环境搭建 db存储模式Nacos(注册&配…

HTB-Bizness

一、信息收集 访问ip自动跳转域名&#xff0c;host绑定域名后访问 目录爆破 有一个登录目录&#xff0c;访问发现是apahce ofbiz登录页面 发现存在漏洞 二、漏洞利用 在github上找到了图形化利用工具 使用工具反弹shell 得到flag 三、权限提升 从本地利用python开启http服务…

远程连接服务器及可视化方法(Win和Linux)

1.win端 1、通过SSH连接至服务器 在window下&#xff0c;打开命令行提示符&#xff08;快捷键winr后输入cmd回车&#xff09; 在命令行中输入 ssh 服务器上的用户名192.168.50.204回车并输入服务器上的用户登录密码 至此&#xff0c;已成功通过SSH连接至服务器。 2、通过…

复旦大学EMBA联合澎湃科技:共议科技迭代 创新破局

1月18日&#xff0c;由复旦大学管理学院、澎湃新闻、厦门市科学技术局联合主办&#xff0c;复旦大学EMBA项目、澎湃科技承办的“君子知道”复旦大学EMBA前沿论坛在厦门成功举办。此次论坛主题为“科技迭代 创新破局”&#xff0c;上海、厦门两地的政策研究专家、科学家、科创企…

集合的并发修改异常问题

使用迭代器遍历集合时&#xff0c;同时在删除集合中的数据&#xff0c;程序就会出现并发修改异常的错误。 import java.util.ArrayList; import java.util.Iterator; import java.util.List;public class _Exception {public static void main(String[] args) {List<String…

【GAD】DOMINANT个人解读/学习

SDM2019&#xff0c;这是一篇图异常检测领域的经典方法. 问题定义 在本文中&#xff0c;我们使用手写体来表示集合&#xff08;例如&#xff0c; V \mathcal{V} V&#xff09;&#xff0c;粗体小写字母&#xff08;例如&#xff0c; x \mathbf{x} x&#xff09;来表示向量&…

优化测试稳定性的失败重试工具:pytest-rerunfailures详解!

一.前言 笔者在执行自动化测试用例时&#xff0c;会发现有时候用例失败并非代码问题&#xff0c;而是由于服务正在发版&#xff0c;导致请求失败&#xff0c;从而降低了自动化用例的稳定性&#xff0c;最后还要花时间定位到底是自身case的原因还是业务逻辑问题&#xff0c;还是…

安全测试:史上最全的攻防渗透信息收集方法、工具!

信息收集的意义 信息收集对于渗透测试前期来说是非常重要的。正所谓&#xff0c;知己知彼百战不殆&#xff0c;信息收集是渗透测试成功的保障&#xff0c;只有我们掌握了目标网站或目标主机足够多的信息之后&#xff0c;才能更好地进行渗透测试。 信息收集的方式可以分为两种…

如何利用EXCEL批量插入图片

目录 1.excel打开目标表格&#xff1b; 2.点开视图-宏-录制宏&#xff0c;可以改宏的名字或者选择默认&#xff1b; 3.然后点开视图-宏-查看宏 4.点编辑进去 5.修改代码&#xff1a; &#xff08;1&#xff09;打开之后会显示有一堆代码 &#xff08;2&#xff09;将这个…

git之分支管理

一.理解分支 我们看下面这张图片&#xff1a; 在版本回退⾥&#xff0c;你已经知道&#xff0c;每次提交&#xff0c;Git都把它们串成⼀条时间线&#xff0c;这条时间线就可以理解为是⼀个分⽀。截⽌到⽬前&#xff0c;只有⼀条时间线&#xff0c;在Git⾥&#xff0c;这个分⽀…

SpringBootRest服务调用

目录 RestTemplate 依赖配置 自定义RestTemplate webCilent 依赖配置 自定义webCilent springboot中有两种方式实现Rest远程服务调用&#xff0c;分别是RestTemplate与webCilent。下面分别介绍一下这两种方式。 RestTemplate 依赖配置 RestTemplate是Spring Framework提供的…

使用GPT生成python图表

首先&#xff0c;生成一脚本&#xff0c;读取到所需的excel表格 import xlrddata xlrd.open_workbook(xxxx.xls) # 打开xls文件 table data.sheet_by_index(0) # 通过索引获取表格# 初始化奖项字典 awards_dict {"一等奖": 0,"二等奖": 0,"三等…

从Unity到Three.js(outline 模型描边功能)

指定模型高亮功能&#xff0c;附带设置背景颜色&#xff0c;获取随机数方法。 百度查看说是gltf格式的模型可以携带PBR材质信息&#xff0c;如果可以这样&#xff0c;那就完全可以在blender中配置好材质导出了&#xff0c;也就不需要像在unity中调整参数了。 import * as THRE…

牛客周赛 Round 34 解题报告 | 珂学家 | 构造思维 + 置换环

前言 整体评价 好绝望的牛客周赛&#xff0c;彻底暴露了CF菜菜的本质&#xff0c;F题没思路&#xff0c;G题用置换环骗了50%, 这大概是唯一的亮点了。 A. 小红的字符串生成 思路: 枚举 a,b两字符在相等情况下比较特殊 a, b input().split() if a b:print (2)print (a)pri…

【Redis】搞懂过期删除策略和内存淘汰策略

1、过期删除策略 1.1、介绍 Redis 是可以对 key 设置过期时间的&#xff0c;因此需要有相应的机制将已过期的键值对删除&#xff0c;而做这个工作的就是过期键值删除策略。 每当我们对一个 key 设置了过期时间时&#xff0c;Redis 会把该 key 带上过期时间存储到一个过期字典…