IT评测·应用市场-qidao123.com技术社区
标题:
python基础必练题!!
[打印本页]
作者:
数据人与超自然意识
时间:
6 天前
标题:
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
复制代码
插入排序
插入排序
# 定义列表
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
复制代码
冒泡排序
冒泡排序
# 定义列表
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)
复制代码
百鸡百钱
百鸡百钱
题干:公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}只小鸡")
复制代码
最小公倍数
最小公倍数
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 : 目标
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岁。”请写出,较小妹妹的年龄?
实现思路:
1、两个妹妹不是双胞胎,年纪肯定不一样
2、年龄积是年龄和的六倍
复制代码
[code]for i in range(1,100): # 假设姐姐的年龄 for j in range(1,i): # 假设妹妹的年龄 if i*j==6*(i+j) and i-j
欢迎光临 IT评测·应用市场-qidao123.com技术社区 (https://dis.qidao123.com/)
Powered by Discuz! X3.4