Python基础训练题分享
笔记哥 /
04-25 /
27点赞 /
0评论 /
614阅读
# 水仙花数
```python
水仙花数
info = 3
while info:
# 用户输入数字
try:
print(f"请输入数字,您有{info}次机会!!")
num = int(input("请输入100-999的数字:"))
if num<100 or num>999:
info -= 1
print(f"请输入合法数字!!!您还有{info}次机会!!")
continue
b = num //100 # 取百位
s = num //10%10 # 取十位
g = num % 10 # 取个位
if b**3+s**3+g**3 == num:
print(f"{num}:这个数是水仙花数")
break
else:
print(f"{num}:这个数不是水仙花数")
info -= 1
except:
print(f"请输入数字!!!您还有{info}次机会!!")
info -= 1
```
# 插入排序
```python
插入排序
# 定义列表
nums = [87,38,77,2,33,98,73,22,12]
for i in range(len(nums)):
# 判断 <右边的元素> 是否小于 <左边元素>
# 如果 小于,则将两个元素交换位置,就变成“小在左,大在右了”
while nums[i] < nums[i-1] and i>=1:
nums[i],nums[i-1] = nums[i-1],nums[i]
i -= 1
```
# 冒泡排序
```python
冒泡排序
# 定义列表
nums = [87,99,17,2,33,68,73,22,12]
# 遍历的次数是列表长度 减一
# 相当于要冒泡几轮
for i in range(len(nums)-1):
# 每轮冒泡的次数,
# -i 是因为 :上轮将大的数已经排在后面,所以后面的就不再参与
for j in range(len(nums)-1-i):
if nums[j] > nums[j+1] :
# 比较左边 ‘nums[j]’ 和右边 'nums[j+1]' 的元素 换位
nums[j],nums[j+1] = nums[j+1],nums[j]
print(nums)
```
# 百鸡百钱
```python
百鸡百钱
题干:公5,母3,小1/3
公鸡x 母鸡y 小鸡z 加起来要 100 只
5x+3y+z/3=100
---------------------------------------
count = 0
for x in range(1,20):
# 因为公鸡数量不会超过20
for y in range(1,33):
# 母鸡数量不超过33
# 小鸡的数量
z = 100 - x - y
if z != 0 and 5*x+3*y+z/3 == 100:
count += 1 # 每次方法记录加一
print(f"第{count}种方法:{x}只公鸡,{y}只母鸡,{z}只小鸡")
```
# 最小公倍数
```python
最小公倍数
num1 = int(input("请输入数字1:"))
num2 = int(input("请输入数字2:"))
if num1 < num2 :
num1,num2 = num2,num1
else:
num1,num2 = num1,num2
for i in range(num1,num1*num2+1):
if i%num1==0 and i%num2==0:
print(f"{i}是{num1}和{num2}的最小公倍数")
```
# 二分查找
`首要条件:被查询的序列,必须是有序的。`
target : 目标
```python
target = n
left = 0 # 左下标/索引
right = len(lis)-1 # 右下标/索引
while left <= right:
# 找到列表中间索引
mid = (left+right)//2
if lis[mid] > target:
# 如果中间值大于目标值,说明目标值在中间值左边
# 所以需要修改右下标。
right = mid-1
elif lis[mid] < target:
# 如果中间值小于目标值,说明目标值在中间值右边
# 所以需要修改左下标。
left = mid + 1
else:
print(f"该数字的下标为{mid}")
break
else:print("该目标不在序列中……")
```
# 猜年龄-妹妹几岁了
`小明带两个妹妹参加元宵灯会。别人问她们多大了,他们调皮地说:“我们两个的年龄之积是年龄之和的六倍。”小明又补充说:“他们可不是双胞胎,年龄差也不超过8岁。”请写出,较小妹妹的年龄?`
```csharp
实现思路:1、两个妹妹不是双胞胎,年纪肯定不一样2、年龄积是年龄和的六倍
```
```python
for i in range(1,100): # 假设姐姐的年龄
for j in range(1,i): # 假设妹妹的年龄
if i*j==6*(i+j) and i-j<8: # 姐妹年龄的条件
print(f"姐姐{i}岁了,妹妹{j}岁了")
```
# 求好字符串?
```csharp
题干需求:
长度为三且各字符不同的子字符串
如果一个字符串不含有任何重复字符,我们称这个字符串为好字符串。
给你-一个字符串s, 请你返回s中长度为3的好子字符串的数量。
注意,如果相同的好子字符串出现多次,每一次都应该被记入答案之中。
子字符串是一个字符串中连续的字符序列。
```
```python
str_i = input("请输入3位以上的字符:")
counts = 0
for i in range(len(str_i)-2): # 以防下方索引时超出范围
if str_i[i] != str_i[i+1] and str_i[i] != str_i[i+2] and str_i[i+1] != str_i[i+2]:
counts += 1
print(f"好字符有:{str_i[i]}{str_i[i+1]}{str_i[i+2]}")
print(f"一共有{counts}个好字符")
```
# 阶乘为n
```csharp
需求:
输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。
比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。
输入:1 输出:[1,2,3,4,5,6,7,8,9]
```
```python
n = int(input('请输入n:'))
for i in range(1,10 ** n):
print(i)
```
# 穷举算法
```csharp
案例要求:1、2、3、4能组成多少个互不相同且无重复数字的三位数,
各是多少?并统计个数
```
```python
counts = 0
for g in range(1,5):
for s in range(1,5):
for b in range(1, 5):
if g != s and g != b and s != b:
counts += 1
print(100 * b + 10 * s + g)
print(f"一共{counts}个")
```
# 斐波那契数列
```python
def fun2(n):
"""斐波那契数列 求第n项的值"""
if n == 1 or n == 2:
return 1
else:
return fun2(n-1) + fun2(n-2)
fun2(7)
```
# 用户登录
```csharp
需求实现:使用input分别输入用户名和密码,验证登录过程
(1)从终端输入用户名,保存到username中。
(2)从终端输入密码,保存到password中。
(3)【核心功能】判断username等于“admin”且password等于“123”的判断结果,如果结果为真,则输出“用户名和密码正确,登陆成功”。
(4)【核心功能】判断username不等于“admin”、password不等于“123”中至少有一个为假的结果,如果结果为真,则输出用户名或密码有误,登陆失败“。
(5)【核心功能】正确使用while循环,登录不成功支持循环登录,最多不超过3次;如果超过3次,则提示“登陆失败,请稍候重试”。
```
```python
counts = 3 # 计数
while counts:
username = input("请输入用户名:") # 用户
password = input("请输入密码:") # 密码
if username == "admin" and password == "123": # 判断
print("用户名、密码输入正确,登陆成功!")
break
else:
counts -= 1 # 计数减一
print("用户名或密码有误,登陆失败。")
print(f"您还有{counts}次机会")
else:
print("登录失败,请稍后重试。")
```
# 九九乘法表
```csharp
使用 while 和 for 分别实现“九九乘法表”。
```
```python
# while
i = 1
while i <= 9:
j = 1
while j<=i:
print(f"{j}*{i}={j*i}",end="\t")
j += 1
print()
i += 1
# for
for i in range(1, 10): # 行
for j in range(1, i + 1): # 列
print(f"{i}*{j}={i * j}", end='\t')
print()
```
# 1-10之间的奇偶数
```csharp
需求:输出‘1-10’之间的奇数。
```
```python
for i in range(1,11):
if i % 2 != 0 : # 判断
print(i)
```
# 元宝胖多少?
```csharp
小岭家有只布偶猫名叫元宝,吃的特别多,
假设今天元宝胖了0.1斤,
以后每天胖的重量都是前一天的2倍,
y = 2 * x
明天 = 2 * 今天
问10天后元宝胖了多少斤?
```
```python
startNum = 0.1
for i in range(9):
startNum *= 2
print(startNum)
```
# 维纳的年龄
```csharp
美国数学家维纳(N.Wiener)智力早熟,11岁就上了大学。他曾在1935~1936年应邀来中国清华大学讲学。
一次,他参加某个重要的会议,年轻的脸孔引人注目。有人询问他的年龄,他回答说:“我的年龄的立方是个4位数。我年龄的4次方是个6位数。这10个数字正好包含了0-9这10个数字,每个都恰好出现一次。
”
请你推算一下,他当时到底有多年轻。
```
```python
# 前置条件:年轻、年龄立方是个4位数、年龄4次方是个6位数
for i in range(11,30):
num1 = str(i**3)
num2 = str(i**4)
if len(num1)==4 and len(num2)==6:
if len(set(num1+num2)) == 10:
print(f"他的年龄是{i}。\n数字是{num1+num2}")
```
# 大衍数列
```csharp
中国古代文献中,曾记载过“大衍数列”,主要用于解释中国传统文化中的太极衍生原理。
它的前几项是0、2、4、8、12、18、24、32、40、50…其规律是对偶数项,是序号平方再除2,奇数项,是序号平方减1再除2。
```
```python
for i in range(1,101):
if i%2==0:
# 偶数
print(int((i**2)/2))
else:
print(int((i**2-1)/2))
```
本文来自投稿,不代表本站立场,如若转载,请注明出处:http//www.knowhub.vip/share/2/2829
- 热门的技术博文分享
- 1 . ESP实现Web服务器
- 2 . 从零到一:打造高效的金仓社区 API 集成到 MCP 服务方案
- 3 . 使用C#构建一个同时问多个LLM并总结的小工具
- 4 . .NET 原生驾驭 AI 新基建实战系列Milvus ── 大规模 AI 应用的向量数据库首选
- 5 . 在Avalonia/C#中使用依赖注入过程记录
- 6 . [设计模式/Java] 设计模式之工厂方法模式
- 7 . 5. RabbitMQ 消息队列中 Exchanges(交换机) 的详细说明
- 8 . SQL 中的各种连接 JOIN 的区别总结!
- 9 . JavaScript 中防抖和节流的多种实现方式及应用场景
- 10 . SaltStack 远程命令执行中文乱码问题
- 11 . 推荐10个 DeepSeek 神级提示词,建议搜藏起来使用
- 12 . C#基础:枚举、数组、类型、函数等解析
- 13 . VMware平台的Ubuntu部署完全分布式Hadoop环境
- 14 . C# 多项目打包时如何将项目引用转为包依赖
- 15 . Chrome 135 版本开发者工具(DevTools)更新内容
- 16 . 从零创建npm依赖,只需执行一条命令
- 17 . 关于 Newtonsoft.Json 和 System.Text.Json 混用导致的的序列化不识别的问题
- 18 . 大模型微调实战之训练数据集准备的艺术与科学
- 19 . Windows快速安装MongoDB之Mongo实战
- 20 . 探索 C# 14 新功能:实用特性为编程带来便利
- 相关联分享
- Browser-use:基于 Python 的智能浏览器自动化 AI 工具调研与实战
- Python多线程编程:线程池使用与性能评估
- 神库Docx预览推荐
- Python在PDF中添加与删除超链接的操作实现
- Python 实现小说网站数据爬取
- Python requests代理(Proxy)使用教程
- 邮件自动回复助手:Rasa与SMTP实现教程
- 在windows11 安装CUDA Toolkit,Python,Anaconda,PyTorch并使用DeepSeek 多模态模型 Janus-Pro识别和生成图片
- trae开发的win10端口占用检测工具
- Python 网络请求:urllib 与 requests 模块深度解析与爬虫实战
- Python基础训练题分享
- Browser-use 详细介绍&使用文档
- Python日志模块Logging的全面使用指南
- N+1查询:数据库性能的隐形杀手与终极拯救指南