前言:
以前总以为基础知识就那回事,随便学学就行了,但是最近辅导学生做作业让我收获很多,发现基础知识有很大的学问,尤其是python语法,一行巧妙的代码能替代几行甚至十几行传统代码,既简洁又高效,下面给大家分享3道python作业题,用到的都是很基础的知识,但是肯定会让你耳目一新:
Number One:
题目:输入一组正整数数据(以逗号隔开),找出其中的质数及其个数,并求出数据中质数的和。要求用函数is_prime(x)实现质素判断,可考虑用函数prime_sum()实现质素求和处理。
知识点:主要考察函数的用法,字符、列表的切割
难度系数:3颗星解
解题思路:先将输入的字符split成列表,定义is_prime函数,用for循环循环判断该列表中的整数是否为质数,并将质数存入新的字符串中,最后将质数字符串split分割成列表,定义prime_sum循环计算质数列表的和。
代码:
def is_prime(num):
for i in range(2,int(num)):
if num%i==0:
return False
return True
def prime_sum(list2):
sum1=0
for i in list2:
sum1+=int(i)
return sum1
a = input('请输入正整数数据:')
list1 = a.split(',')
print('原数据为:'+a+',共计'+str(len(list1))+'个数据')
result = ''
for i in list1:
if is_prime(int(i)):
result+=','+i
list2=result[1:].split(',')
print('其中质数为:'+str(result[1:])+'共计'+str(len(list2))+'个质数')
print('质数和为:'+str(prime_sum(list2)))
Number Two:
题目:一串文字,包括中英文数字标点,将每个字符用ord转成5位编码,将每个字符用ord转成5位编码,不足5位前面补零,将每个编码反序,组成加密编码S1输出,再将S1(用chr)解密成原文字输出。
知识点:主要涉及字符编码、字符的分组与反向
难度系数:3颗星
解题思路:先for循环每个字符,将每个字符用ord编码,将每个编码反转后组成密码,再将密码按5个一组进行分组,反转后进行chr解码。
代码:
content = input('请输入要转化的内容:')
S1 = ""
for i in content:
a = '%.5d' % ord(i)
reverse_a = a[::-1]
S1 += reverse_a
print('S1解密后为:')
ret = ''.join([chr(int(S1[i:i+5][::-1])) for i in range(0, len(S1), 5)])
print(ret)
Number Three:
题目:数的分解。(2-100)
2=1×2
3=1×3
4=1×2×2
5=1×5
6=1×2×6
……
100=1×2×2×5×5
知识点:主要考察循环和判断语句
难度系数:4颗星
解题思路:循环1至100每个整数,依次找出每个整数的因数
代码:
for n in range(1,101):
print('%d='%n,end='')
if n==1:
print(1)
else:
print('%d×' % 1, end='')
while n>1:
for i in range(2, n+1):
if n%i==0:
n=int(n/i)
if n==1:
print('%d'%i, end='\n')
else:
print('%d×'%i, end='')
最后总结:
欢迎大家积极尝试去做一下,看东西不能只看表面,不然自己动手实现的时候,总会有各种各样的问题,切勿眼高手低,勤动手,才可以理解的更加深刻。
欢迎大家点赞,留言,转发,感谢大家的相伴与支持,关注公众号:【Python的进阶之旅】有惊喜哦!