Python习题详解

练习:

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("")

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

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

相关文章

缓存篇—缓存穿透

当发生缓存雪崩或击穿时&#xff0c;数据库中还是保存了应用要访问的数据&#xff0c;一旦缓存恢复相对应的数据&#xff0c;就可以减轻数据库的压力&#xff0c;而缓存穿透就不一样了。 当用户访问的数据&#xff0c;既不在缓存中&#xff0c;也不在数据库中&#xff0c;导致…

论文阅读《Sylph: A Hypernetwork Framework for Incremental Few-shot Object Detection》

论文地址&#xff1a;https://arxiv.org/abs/2203.13903 代码地址&#xff1a;https://github.com/facebookresearch/sylph-few-shot-detection 目录 1、存在的问题2、算法简介3、算法细节3.1、基础检测器3.2、小样本超网络3.2.1、支持集特征提取3.2.2、代码预测3.2.3、代码聚合…

【Vulkan Tutorials 01】【环境搭建】三角形例子

Development Environment&#xff08;开发环境&#xff09; 1. 安装Vulkan SDK 官网 2. 安装cmake和minGW 2.1 cmake 官网 双击可执行文件&#xff0c;然后直接安装&#xff0c;注意环境变量选择设置&#xff0c;否则需要自己操作。 2.2 minGW 官网 下载如下图所示&am…

【Pytorch深度学习开发实践学习】B站刘二大人课程笔记整理lecture08数据集导入和构建

lecture08数据集导入和构建 课程网址 Pytorch深度学习实践 部分课件内容&#xff1a; import torch from torch.utils.data import Dataset, DataLoader import numpy as npclass DiabetesDataset(Dataset):def __init__(self):xy np.loadtxt(diabetes.csv.gz, delimiter,, …

Sora:打开视频创作新纪元的魔法钥匙

随着人工智能技术的飞速发展&#xff0c;AI视频模型已成为科技领域的新热点。而在这个浪潮中&#xff0c;OpenAI推出的首个AI视频模型Sora&#xff0c;以其卓越的性能和前瞻性的技术&#xff0c;引领着AI视频领域的创新发展。让我们将一起探讨Sora的技术特点、应用场景以及对未…

vulnhub靶场之Deathnote

一.环境搭建 1.靶场描述 Level - easy Description : dont waste too much time thinking outside the box . It is a Straight forward box . This works better with VirtualBox rather than VMware 2.靶场下载 https://www.vulnhub.com/entry/deathnote-1,739/ 3.启动环…

【linux】shell命令 | Linux权限

目录 1. shell命令以及运行原理 2. Linux权限的概念 3. Linux权限管理 3.1 文件访问者的分类 3.2 文件类型和访问权限 3.3 文件权限值的表示方法 3.4 文件访问权限的相关设置方法 4. file指令 5. 目录的权限 6. 粘滞位 7. 关于权限的总结 1. shell命令以及运行原理 …

05.STLvector、list、stack、queue

STL标准模板库 standard template library STL将原来常用的容器和操作进行封装&#xff0c;增加了C的编码效率 容器 string #include vector #include list #include stack #include queue #include set #include map #include 迭代器 容器和算法之间的粘合剂&#xff0…

js 多对象去重(多属性去重)

需求中发现后端可能没有处理重复数据&#xff0c;这个时候前段可以直接解决。 在 JavaScript 中&#xff0c;可以使用 Set 数据结构来进行多对象的去重。Set 是 ES6 新引入的集合类型&#xff0c;其特点是元素不会重复且无序。 下面是一个示例代码&#xff0c;展示如何通过 S…

Nginx----高性能的WEB服务端

一、Nginx介绍 1、什么是Nginx Nginx Nginx是一个高性能的HTTP和反向代理服务器。是一款轻量级的高性能的web服务器/反向代理服务器/电子邮件&#xff08;IMAP/POP3&#xff09;代理服务器&#xff0c;单台物理服务器可支持30 000&#xff5e;50 000个并发请求。 一款高性能…

一分钟学会MobaXterm当Linux客户端使用

一、介绍 MobaXterm是一款功能强大的远程计算机管理工具&#xff0c;它集成了各种网络工具和远程连接协议&#xff0c;可以帮助用户在Windows系统上轻松管理远程计算机。MobaXterm支持SSH、Telnet、RDP、VNC等多种远程连接协议&#xff0c;同时还集成了X11服务器&#xff0c;可…

启动node服务报错Error: listen EACCES: permission denied 0.0.0.0:5000

启动node服务报错&#xff1a; 解决方案&#xff1a; 将监听端口改成3000或者其他 修改后结果&#xff1a; 参考原文&#xff1a; Error: listen EACCES: permission denied_error when starting dev server: error: listen eacc-CSDN博客

并发编程入门指南

文章目录 并发编程进程和线程的区别并发和并行的区别创建线程的方式线程之间的状态&#xff0c;状态之间的转换新建三个线程&#xff0c;如何保证按顺序执行wait方法和sleep的区别如何停止一个正在运行的线程synchronized关键字底层原理Monitor属于重量级锁&#xff0c;了解过锁…

外贸邮件群发软件有效果吗?邮件群发平台?

外贸邮件群发软件怎么选&#xff1f;国外邮箱群发平台如何选择&#xff1f; 外贸业务已成为许多企业发展的重要方向。在这个过程中&#xff0c;各种工具和技术层出不穷&#xff0c;其中外贸邮件群发软件因其能够高效、批量地发送邮件而备受关注。那么&#xff0c;外贸邮件群发…

API接口测试工具的使用指南

API接口测试是确保软件系统正常运作的关键步骤。API接口测试工具可以帮助开发人员和测试人员验证API的功能、性能和安全性。本文将介绍API接口测试工具的基本使用方法&#xff0c;以便有效地进行接口测试。 1. 选择合适的API测试工具 在开始API接口测试之前&#xff0c;首先需要…

STM32F10X(Cortex-M3)系统定时器寄存器笔记和系统定时器精准延时函数

Cortex-M3系统定时器寄存器笔记和系统定时器精准延时函数 简介系统定时器寄存器STK_CTRLSTK_LOADSTK_VALSTK_CALIB STM32F10X(Cortex-M3)精准延时函数 简介 在STM32F10X(Cortex-M3)除了通用定时器和看门狗定时器外&#xff0c;还有一个系统定时器(SysTick) 拿STM32F103C8T6来说…

vue如何动态加载显示本地图片资源

在实际开发中&#xff0c;根据某一个变量动态展示图片的情况有很多。实现方法分打包构建工具的差异而不同。 1、webpack的项目 require引入图片资源 2、vite的项目 new URL(url,base).href 疑问解答&#xff1a;为什么vite项目不可以用require&#xff1f; 原因在于&#xf…

vue项目设置的端口号运行后会自动加一问题解决

vue项目设置的端口号运行后会自动加一问题解决 主要原因是之前运行项目后没有完全的关闭服务&#xff0c;导致再次运行项目端口号被占用&#xff0c;自动加一&#xff01; 问题解决 打开任务管理器&#xff0c;在进程中找到node相关进程&#xff0c;右键结束任务

长期有效的文本二维码怎么生成?将文字做成二维码只需3步

现在经常会在扫描二维码的时候&#xff0c;发现很多的二维码种会展现文字的内容&#xff0c;比如常见的有物品信息、个人信息、信件等等。通过生成二维码的方式&#xff0c;来让其他人扫码获取内容&#xff0c;这种方式可以有效地降低成本&#xff0c;而且获取内容的方式也更加…

HDFS中常用的Shell命令 全面且详细

HDFS中常用的Shell命令目录 一、ls命令 二、mkdir 命令 三、put命令 四、get命令 五、mv命令 六、rm命令 七、cp命令 八、cat命令 前言 安装好hadoop环境之后&#xff0c;可以执行hdfs相关的shell命令对hdfs文件系统进行操作&#xff0c;比如文件的创建、删除、修改文…