1、将上节课的作业,统统使用函数封装一次
def hs(height,weight):
BMI = weight/height**2
if BMI < 18.5:
return("过轻")
elif 18.5 < BMI <24:
return("正常")
elif 24 < BMI < 27:
return("过重")
elif 27 < BMI <30:
return("轻度肥胖")
elif 30 < BMI <35:
return("中度肥胖")
elif 35 >= BMI :
return("重度肥胖")
height = float(input("请输入身高(m):"))
weight = float(input("请输入体重(kg)"))
print(hs(height,weight))
def hs(s):
i = 1
while i <= s:
j = 1
while j <= i:
print ("*",end ="")
j += 1
print("")
i += 1
s=int(input("请输入一个数:"))
hs(s)
2、 输入数,判断这个数是否是质数(要求使用函数 + for循环)
def hs(a):
for i in range(2,a//2+1):
if a%i==0:
return False
return True
a=int(input("请输入一个数:"))
if hs(a)==True:
print(f"{a}是质数")
else:
print(f"{a}是合数")
3、求50~150之间的质数是那些?
for i in range(50,151):
flag = True
for o in range(2,i//2):
if i % o == 0:
flag = False
break
if flag:
print(f"{i}是质数")
4、打印输出标准水仙花数,输出这些水仙花数
for i in range (100,1000):
hundred = i//100
ten = i % 100 // 10
bit = i % 10
if hundred ** 3 + ten ** 3 + bit ** 3 == i:
print(i)
5、验证:任意一个大于9的整数减去它的各位数字之和所得的差,一定能被9整除.
def check(num):
count = 0
start_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 check(num):
print("符合规律")
else:
print("不符合规律")
6、一个五位数,若在它的后面写上一个7,得到一个六位数A,
若在它前面写上一个7,得到一个六位数B,B是A的五倍,求此
五位数.
from re import I
def hs():
for i in range(10000,100000):
A=i*10+7
B=i+700000
if B == A * 5:
return i
print(hs())
7、有一种最简真分数,它们的分子与分母的乘积都是140,把
所有这样的真分数从小到大打印出来
for a in range (1,12):
for b in range (2,141):
if a<b and a*b == 140:
print(f"{a}/{b}")
8、某数被80除所得的商,不但是7的倍数,而且用2,3,4,5,6去
除余数都是1,求这 个自然数.
def hs():
i=560
while True:
shang = i / 80
if shang % 7 == 0 and shang % 2 == 1 and shang % 3 ==1 and shang % 4 == 1 and shang % 5 == 1 and shang % 5 ==1:
return i
i = i+1
print(hs())
9、编程求出满足以下条件的三位数:它除以11所得的商等于它各位数字之和
for i in range (100,1000):
shang = i/11
hundred = i // 100
ten = i % 100 // 10
bit = i % 10
if shang == hundred + ten +bit:
print(i)
10、有一堆硬币,每次只能拿一个或者两个,求最少多少次可以拿完硬币
[10, 8, 5, 3, 27, 99]
def hs (a):
count = 0
for i in a:
if i & 1 == 0:
count = i // 2 +count
else :
count = i // 2 + 1 +count
return count
a=[10,8,5,3,27,99]
count = hs(a)
print(f"最少需要{count}次才可以拿完硬币")
11、求1~100之间不能被3整除的数之和
def hs():
count = 0
for i in range (1,101):
if i % 3 != 0:
count = count + i
return count
count = hs()
print(f"1~100之间不能被3整除之和为{count}")
12、给定一个正整数N,找出1到N(含)之间所有质数的总和
N = int (input("请输入一个正整数:"))
count = 0
for i in range (1,N+1):
flag = True
for o in range (2,i//2+1):
if i % o == 0:
flag = False
break
if flag:
count = count + i
print(count)
13、计算PI(公式如下:PI=4(1-1/3+1/5-1/7+1/9-1.......)
import sys
n = int (input("请输入一个正整数:"))
if n <= 0:
print("您输入的不是正整数,程序退出")
sys.exit()
s=0
a=0
for i in range (1,n+1,2):
s=s+1/i*(-1)**a
a +=1
print("pi的近似值是:",s*4)
14、给定一个10个元素的列表,请完成排序(注意,不要使用系统api)
wp = [1,3,5,2,4,6]
for i in range (len(wp)-1):
for j in range (len (wp)-1-i):
if wp[j]>wp[j+1]:
wp[j],wp[j+1]=wp[j+1],wp[j]
print(wp)
15、求 a+aa+aaa+.......+aaaaaaaaa=?其中a为1至9之中的一个数,项数也要可以指定。
a=0
while a<=0 or a>=10:
a=int(input("Enter a[1,9]"))
n=0
while n<=0:
n = int(input("ENTER n :"))
s=0
m=0
for i in range(n):
m= m*10+a
s +=m
if i<n-1:
print(m,end="+")
else :
print(m,end="-")
print(s)
16、合并两个有序数组,合并后还是有序列表
def loop_merge_sort(l1,l2):
tmp = [] #构造一个的新的列表
while len(l1)>0 and len(l2)>0:
if l1[0] <l2[0]: #循环每次比较第一个元素
tmp.append(l1[0]) #tmp添加元素
del l1[0] #l1删除一个,原有的元素自动向前移动一位
else:
tmp.append(l2[0])
del l2[0]
while len(l1)>0:
tmp.append(l1[0])
del l1[0]
while len(l2)>0:
tmp.append(l2[0])
del l2[0]
return tmp
if __name__ == '__main__':
L1=[23,45,67,77,78,80,90]
L2=[4,11,26,33,42,61,80]
new_list=loop_merge_sort(L1,L2)
print(new_list)
17、给定一个非负整数数组A,将该数组中的所有偶数都放在奇数元素之前
def get_num(ls):
for i in ls:
for j in ls:
if j != i:
print(f"没有成对的元素为:{j}")
return j
if __name__=='__main__':
ls = [1,3,1,2,8,8]
get_num(ls)
18、将10进制数据转换为二进制,并且统计其中的0和1的数量
def oneCount1(n):
print(bin(n))
if n<0:
n = n& 0xffffffff
print(n)
print(bin(n))
bin2=str(bin(n))[2:]
print(bin2)
count = 0
for i in str(bin2):
if i == '1':
count +=1
return count
print(oneCount1(12))
print(oneCount1(-12))