作业1:某商店T恤的价格为35元/件(2件9折,3件以上8折),裤子的价格为120 元/条(2条以上9折).小明在该店买了3件T恤和2条裤子,请计算并显示小明应该付多少钱?
shirts = int (input("请问要购买几件T恤:"))
shorts = int (input("请问要购买几条裤子:"))
if shirts == 0 or shirts == 1:
shirts_p = shirts * 35
elif shirts == 2:
shirts_p = 35 * shirts * 0.9
elif shirts >= 3:
shirts_p = 35 * shirts * 0.8
if shorts == 0 or shorts == 1:
shorts_p = shorts * 120
elif shorts >= 2:
shorts_p = 120 * shorts * 0.9
print(shirts_p + shorts_p)
作业2:鸡兔同笼,从上面看有35个头,从下面看有94只脚,请问鸡有几只,兔有几只?
def sums():
for i in range(0,36):
for j in range(0,36):
if (i + j == 35) and (i * 2 + j * 4 == 94):
print(i,j)
sums()
作业3:猜数字游戏
电脑随机一个范围内的数,用户输入数据判断,
如果数大了,提供”数大了“
成功之后,加上用户是否继续功能
import random
nums = float(input("请输入一个0-100的整数:"))
n = random.randint(0, 100)
while nums <= 100:
if nums > n:
nums = float(input("数大了,请重新输入:"))
if nums < n:
nums = float(input("数小了,请重新输入:"))
if nums == n:
print("恭喜你,答对了")
break
作业4:猜拳游戏:石头、剪刀、布的游戏
import random
nums = int(input("请输入你想出的手势(0为石头;1为剪刀;2为布):"))
res = random.randint(0, 2)
if 0<= nums <= 2:
if (nums == 0 and res == 0) or (nums == 1 and res == 1) or (nums == 2 and res == 2):
print(f"它出的是{res}")
print("平手")
elif (nums == 0 and res == 1) or (nums == 1 and res == 2) or (nums == 2 and res == 0):
print(f"它出的是{res}")
print("你赢了")
elif (nums == 0 and res == 2) or (nums == 1 and res == 0) or (nums == 2 and res == 1):
print(f"它出的是{res}")
print("你输了")
else:
print("您输入的手势有误")
print("程序运行结束")
作业5:如果两个素数之差为2,这样的两个素数就叫作"孪生数",找出100以内的所有"孪生数".
numbers = []
for i in range(1, 101):
for j in range(2, (i//2)+1):
if (i % j) == 0:
break
else:
numbers.append(i)
def func():
for a in numbers:
for b in numbers:
if a - b == 2:
print(a, b)
func()
作业6:求50~150之间的质数是那些?
for i in range(50, 151):
for j in range(2, (i//2)+1):
if (i % j) == 0:
break
else:
print(i)
作业7:打印输出标准水仙花数,输出这些水仙花数
for i in range(100,1000):
a = str(i)
nums = list(a)
if (int(nums[0])**3 + int(nums[1])**3 + int(nums[2])**3) == i:
print(i)
作业8:验证:任意一个大于9的整数减去它的各位数字之和所得的差,一定能被9整除.
# 假设只取1000以下的数来验证
abm = int(input("请输入一个大于9的整数(10-1000):"))
if 10 <= abm < 100:
a = str(abm)
nums = list(a)
c = abm - (int(nums[0]) + int(nums[1]))
if c % 9 == 0:
print("验证成功")
else:
print("验证失败")
elif 100 <= abm < 1000:
a = str(abm)
nums = list(a)
c = abm - (int(nums[0]) + int(nums[1])+int(nums[2]))
if c % 9 == 0:
print("验证成功")
else:
print("验证失败")
else:
print("您输入的数有误或超出指定范围")
作业9:一个五位数,若在它的后面写上一个7,得到一个六位数A,若在它前面写上一个7,得到一个六位数B,B是A的五倍,求此五位数.
for i in range(10000, 100000):
a = (i * 10) + 7
b = int("7"+str(i))
if (b/a) == 5:
print(i)
作业10:有一种最简真分数,它们的分子与分母的乘积都是140,把所有这样的真分数从小到大打印出来
for i in range(1, 141):
for j in range(1, 141):
if i*j == 140 and i < j:
print(f"{i}/{j}")
作业11:某数被80除所得的商,不但是7的倍数,而且用2, 3, 4, 5, 6去除余数都是1,求这 个自然数
以1000以内的数为例:
for i in range(81, 1000):
a = i // 80
b = i % 80
if a % 7 == 0 and b % 2 == 1 and b % 3 == 1 and b % 4 == 1 and b % 5 == 1 and b % 6 == 1:
print(i)
作业12:编程求出满足以下条件的三位数:它除以11所得的商等于它各位数字之和
for i in range(100, 1000):
a = i // 11
b = str(i)
c = list(b)
if a == int(c[0]) + int(c[1]) + int(c[2]):
print(i)
作业13:有一堆硬币,每次只能拿一个或者两个,求最少多少次可以拿完硬币
[10, 8, 5, 3, 27, 99]
heap_ls = [10, 8, 5, 3, 27, 99]
nums = 0
for i in heap_ls:
if i & 1 == 0:
nums += i/2
else:
nums += i//2 + 1
print(nums)
作业14:求1~100之间不能被3整除的数之和
res = 0
for i in range(1, 101):
if i % 3 != 0:
res += i
print(res)
作业15:给定一个正整数N,找出1到N(含)之间所有质数的总和
n = int(input("请输入一个正整数:"))
res = 0
for i in range(1, n+1):
for j in range(2, i//2 + 1):
if i % j == 0:
break
else:
res += i
print(res)
作业16:给定一个列表,求最大值(不能使用系统api),求最小值,求平均值、求和
sums = [3, 2, 5, -1, 12, 10, 7, 9, 15, 6]
for i in range(len(sums) - 1):
for j in range(len(sums) - 1 - i):
if sums[j] > sums[j + 1]:
sums[j], sums[j + 1] = sums[j + 1], sums[j]
max_num = sums[9]
min_num = sums[0]
sue_num = 0
for i in sums:
sue_num += i
average_num = sue_num / 10
print(f"该列表的最大值为{max_num}")
print(f"该列表的最小值为{min_num}")
print(f"该列表的和为{sue_num}")
print(f"该列表的平均值为{average_num}")
作业17:将list中的重复数据去重,至少使用两种方案
方法一:
sums = [3, 2, 5, -1, 2, 10, 7, 3, 15, 6, 10]
sums = list(set(sums))
print(sums)
方法二:
nums1 = [3, 2, 5, -1, 2, 10, 7, 3, 15, 6, 10]
nums2 = []
for i in nums1:
if i not in nums2:
nums2.append(i)
print(nums2)
作业18:两个列表进行合并操作
nums1 = [3, 2, 5, -1, 2, 10, 7, 3, 15]
nums2 = [2, 5, 8, 7]
nums1.extend(nums2)
print(nums1)
作业19: 使用列表判断一个列表是否在另外一个列表中
nums1 = [3, 2, 5, -1, 5, 2, 10, 7, 8, 15]
nums2 = [2, 5, 8, 5, 7]
nums3 = []
for i in nums1:
if i in nums2:
nums2.remove(i)
if nums2 == nums3:
print("nums2列表在nums1列表中")
else:
print("nums2列表不在nums1列表中")
作业20:列表的反转 列表的排序
反转
nums1 = [3, 2, 5, -1, 5, 2, 10, 7, 8, 15]
nums1.reverse()
print(nums1)
排序:
nums1 = [3, 2, 5, -1, 5, 2, 10, 7, 8, 15]
nums1.sort()
print(nums1)
作业21:如何将0-10随机存入列表中
nums = []
for i in range(0, 11):
nums.append(i)
print(nums)
作业22:
不死兔子问题,小明妈妈给买了一对刚刚出生的兔子,已知,一对刚刚出生的兔子需要成长四个月,才能成为成年的兔子,成年的兔子每一个会生一对小兔子,问,第n月,共有多少对兔子。
# 斐波那契数列
# 1月 2月 3月 4月 5月 6月
# 1 1 2 3 5 8
def nums(n):
if n == 1 or n == 2:
return 1
return nums(n - 1) + nums(n - 2)
print(nums(7))
作业23:汉诺塔
// An highlighted block
var foo = 'bar';