作业1、将上节课的作业,统统使用函数封装一次
def test(m, n, z):
if z == "+":
print(m + n)
elif z == "-":
print(m - n)
elif z == "*":
print(m * n)
elif z == "/":
print(m / n)
elif z == "%":
print(m % n)
elif z == "//":
print(m // n)
elif z == "**":
print(m ** n)
m = eval(input("输入第一个数:"))
n = eval(input("输入第一个数:"))
z = input("输入运算符:")
test(m, n, z)
...
作业2、判断以下哪些不能作为标识符B D F
A、a
B、¥a
C、_12
D、$a@12
E、false
F、False
作业3:输入数,判断这个数是否是质数(要求使用函数 + for循环)
num = int(input("请输入一个数:"))
def zhi_shu(num):
for i in range(2, num // 2 ):
if num % i == 0:
return False
else:
return True
flag = zhi_shu(num)
if flag:
print(f"{num}是个质数")
else:
print(f"{num}是个合数")
作业4:求50~150之间的质数是那些?
for i in range(50, 150):
flag = True
for j in range(2, i):
if i % j == 0:
flag = False
break
if flag:
print(f"{i}是素数", end=(''))
作业5:打印输出标准水仙花数,输出这些水仙花数
def shui_xian_hua():
a = range(100, 1000)
for i in range(0, 900):
bai = a[i] // 100
shi = (a[i] // 10) % 10
ge = a[i] % 10
if a[i] == bai ** 3 + shi ** 3 + ge ** 3:
print(a[i])
shui_xian_hua()
作业6:验证:任意一个大于9的整数减去它的各位数字之和所得的差,一定能被9整除.
a = input("请输入一个大于九的数:")
b = []
c = 0
d = 0
for i in range(0, len(a)):
b.append(a[i])
for i in range(0, len(b)):
d = d + int(b[i])
c = int(a) - d
if i // 9 == 0:
print("猜想正确")
else:
print("猜想错误")
# def test(num):
# count = 0
# star_num = num
# while num != 0:
# count += num % 10
# num //= 10
#
# if (start_num - count) % 9 == 0:
# return True
# return False
# num = int(input("请输入一个大于9的整数:"))
# while num < 10:
# num = int(input("对不起,输入的数必须大于9:"))
#
# if test(num):
作业7:一个五位数,若在它的后面写上一个7,得到一个六位数A,若在它前面写上一个7,得到一个六位数B,B是A的五倍,求此五位数.
for i in range(10000, 100000):
w = i // 10000
q = i % 10000 // 1000
b = i % 1000 // 100
s = i % 100 // 10
g = i % 10
A = int(str(w) + str(q) + str(b) + str(s) + str(g) + "7")
B = int("7" + str(w) + str(q) + str(b) + str(s) + str(g))
if B // 5 == A:
print(i)
作业8:有一种最简真分数,它们的分子与分母的乘积都是140,把所有这样的真分数从小到大打印出来
for i in range(1, 140):
for j in range(1, 140):
if i / j < 1 and i * j == 140 :
if i & 1 == 0 and j & 1 == 0:
break
else:
print(f"{i}/{j}")
作业9:某数被80除所得的商,不但是7的倍数,而且用2,3,4,5,6去除余数都是1,求这个自然数.
def get_num():
index = 560
while True:
if (index % 7 == 0) and (index % 2 == 1) and (index % 3 == 1) and (index % 4 == 1) and (index % 5 == 1) and (
index % 6 == 1):
return index
index += 1
print(get_num())
作业10:编程求出满足以下条件的三位数:它除以11所得的商等于它各位数字之和
def test_10():
for i in range(100, 1000):
b = i // 100
s = i % 100 // 10
g = i % 10
shang = i // 11
he = b + s + g
if shang == he:
print(i)
test_10()
作业11:有一堆硬币,每次只能拿一个或者两个,求最少多少次可以拿完硬币[10, 8, 5, 3, 27, 99]
def test_11(num):
if num % 2 == 0:
print(f"{num / 2}次可以拿完")
else:
print(f"{num // 2 + 1}次可以拿完")
test_11(10)
test_11(8)
test_11(5)
test_11(3)
test_11(27)
test_11(99)
# def get_cron(ls):
# count = 0
# for i in ls:
# count += i // 2 + i % 2
# return count
#
#
# data = [10, 8, 5, 3, 27, 99]
# countx = get_cron(data)
# print(f"最少需要{countx}次才可以拿完硬币")
作业12:求1~100之间不能被3整除的数之和
array = []
for i in range(1, 100):
if i % 3 != 0:
array.append(i)
print(sum(array))
作业13:给定一个正整数N,找出1到N(含)之间所有质数的总和
num = int(input("请输入N:"))
def test_13(n):
array = []
for i in range(2, n):
for j in range(2, i):
if i % j == 0:
break
else:
array.append(i)
print(sum(array))
test_13(num)
作业14:计算PI(公式如下:PI=4(1-1/3+1/5-1/7+1/9-1.......)
a = int(input(":"))
array1 = []
array2 = []
for i in range(1, a, 2):
m = 1 / (2 * i - 1)
array1.append(m)
for i in range(2, a, 2):
n = 1 / (2 * i - 1)
array2.append(n)
print( 4*(sum(array1) - sum(array2)))