0


Python第五章作业

第1关 回文素

  1. def isprime(n):
  2. for j in range(2, int(n**(1/2)) + 1):
  3. if n % j == 0:
  4. return 0
  5. return 1
  6. def plalindrome_prime(n):
  7. n1 = n[::-1]
  8. if n1 == n:
  9. return 1
  10. return 0
  11. x = int(input())
  12. i = 0
  13. n = 2
  14. while (i < x):
  15. if (isprime(n) and plalindrome_prime(str(n))):
  16. print(n, end=' ')
  17. i += 1
  18. n += 1

第2关 反素数

  1. def is_prime(n):
  2. for i in range(2,int(n**(1/2)+1)+1):
  3. if n % i ==0:
  4. return False
  5. return True
  6. def reverse_prime(n):
  7. if is_prime(n) and is_prime(int(str(n)[::-1])) and str(n) !=str(n)[::-1]:
  8. return True
  9. else:
  10. return False
  11. a = int(input())
  12. times = 0
  13. n = 2
  14. while times < a:
  15. if reverse_prime(n):
  16. print(n,end = " ")
  17. times += 1
  18. n +=1

第3关 哥德巴赫猜想

  1. def is_prime(n):
  2. """判断素数的函数,接收一个正整数为参数,参数是素数时返回True,否则返回False"""
  3. # ====================Begin===================================
  4. # 补充你的代码
  5. if n < 2:
  6. return False
  7. elif n == 2:
  8. return True
  9. else:
  10. a = int(n ** (1 / 2) + 1)
  11. for i in range(2, a + 1):
  12. if n % i == 0:
  13. return False
  14. else:
  15. return True
  16. # ======================End=================================
  17. def goldbach_conjecture(num):
  18. """ 哥德巴赫猜想, 接收一个不小于4的正整数为参数。
  19. 当参数为不小于4的偶数时,将其分解为两个素数的加和,按小数+数的格式输出。
  20. 有多种组合时全部输出,但不输出重复的组合,例如输出8=3+5,不输出8=5+3。
  21. 参数为奇数或小于4时,输出'Data error!'
  22. """
  23. # ====================Begin===================================
  24. # 补充你的代码
  25. if 4<=num and num % 2 == 0:
  26. for i in range(1,num + 1):
  27. n = num - i
  28. if is_prime(i) and is_prime(n) and i<=n :
  29. print(f"{num}={i}+{n}")
  30. else:
  31. print('Data error!')
  32. # ======================End=================================
  33. if __name__ == '__main__':
  34. positive_even = int(input()) # 输入一个正数
  35. goldbach_conjecture(positive_even)

第4关 货币转换

  1. a = input()
  2. b = eval(input())
  3. if '$' in a and b>0:
  4. c = eval(a.replace('$',""))
  5. print(f"{c*b:.2f}¥")
  6. elif "¥" in a and b>0:
  7. c = eval(a.replace('¥', ""))
  8. print(f"{c/b:.2f}$")
  9. else:
  10. print("Data error!")

第5关 个人信息提取

  1. a = list(map(str,input().split()))
  2. b = []
  3. c=0
  4. for i in a[4]:
  5. if str.isdigit(i) and c <4:
  6. b.append(i)
  7. c+=1
  8. b = ''.join(b)
  9. print("姓名:" + a[1])
  10. print("班级:" + a[2])
  11. print("出生:" + str(b)+"年")

第6关 身份证号基本信息

  1. a = input()
  2. year = a[6:10]
  3. month = a[10:12]
  4. date = a[12:14]
  5. if int(a[16])%2 == 0:
  6. print(f'出生:{year}年{month}月{date}日')
  7. print('性别:女')
  8. else:
  9. print(f'出生:{year}年{month}月{date}日')
  10. print('性别:男')

第7关 各位数字之和为5的数

  1. a = int(input())
  2. for i in range(a+1):
  3. s = 0
  4. for n in str(i):
  5. s = s + int(n)
  6. if s == 5:
  7. print(i, end=" ")

第8关 字符串长度

  1. a = input()
  2. print(len(a))

第9关 字符串加密

  1. import string
  2. def caesar_cipher(text):
  3. lower = string.ascii_lowercase
  4. upper = string.ascii_uppercase
  5. digit = string.digits
  6. before = lower + upper + digit
  7. after = lower[3:]+lower[:3] + upper[5:]+upper[:5]+ digit
  8. result = ''.maketrans(before, after)
  9. return text.translate(result)
  10. if __name__ == '__main__':
  11. plaintext = input()
  12. print(caesar_cipher(plaintext))

第10关 输出单词

  1. a = input()
  2. b = a.split()
  3. for i in b:
  4. print(i)

第11关 字符大小写转换

  1. import string
  2. def caesar_cipher(text):
  3. lower = string.ascii_lowercase
  4. upper = string.ascii_uppercase
  5. digit = string.digits
  6. before = lower + upper + digit
  7. after = upper + lower+ digit
  8. result = ''.maketrans(before, after)
  9. return text.translate(result)
  10. if __name__ == '__main__':
  11. plaintext = input()
  12. print(caesar_cipher(plaintext))

第12关 查找指定字符

  1. a = input()
  2. b = input()
  3. if a in b:
  4. print(f'index = {b.index(a)}')
  5. else:
  6. print("Not Found")

第13关 随机密码生成器

  1. import random
  2. n,s= map(int,input().split(','))
  3. random.seed(s)
  4. i = 0
  5. while i < n:
  6. i += 1
  7. print(random.choice('0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&\()*+,-.'),end = "")

第14关 模拟生成微软序列号

  1. import random
  2. n = int(input())
  3. x = int(input())
  4. random.seed(x)
  5. def wrxl():
  6. list = []
  7. times = 0
  8. while times < 5:
  9. for i in range(5):
  10. a = random.choice("BCEFGHJKMPQRTVWXY2346789")
  11. list.append(a)
  12. list.append('-')
  13. list1 = map(str,list)
  14. times += 1
  15. list2 = ''.join(list1)
  16. list2 = list2.strip('-')
  17. return list2
  18. for i in range(n):
  19. print(wrxl())

第15关 数列求和

  1. A = input()
  2. N = int(input())
  3. if 0 <= N and 1<= int(A) <=9 :
  4. def slqh(A,N):
  5. list = []
  6. for i in range(1,N+1):
  7. list.append(int(A*i))
  8. print(sum(list))
  9. slqh(A,N)
  10. else:
  11. print('data error')

第16关 单词个数

  1. txt = input()
  2. for i in ",.!":
  3. txt = txt.replace(i, " ")
  4. x1 = txt.split()
  5. print(len(x1))

本文转载自: https://blog.csdn.net/m0_70456205/article/details/129979347
版权归原作者 NDWJL 所有, 如有侵权,请联系我们删除。

“Python第五章作业”的评论:

还没有评论