【头歌-Python】Python第五章作业(初级)(1~6)

禁止转载,原文:https://blog.csdn.net/qq_45801887/article/details/134911113

参考教程:B站视频讲解------https://space.bilibili.com/3546616042621301

第1关:回文素数

任务描述

回文素数是指一个数既是素数又是回文数。例如,131,既是素数又是回文数。 用户输入一个正整数 n , 请你在一行内输出从小到大排列的的前n个回文素数,数字后面用一个空格进行分隔。

输入格式

输入一个正整数

输出格式

符合要求的回文素数

示例

输入:10

输出:2 3 5 7 11 101 131 151 181 191

参考代码

python 复制代码
# 禁止转载,原文:https://blog.csdn.net/qq_45801887/article/details/134911113
from math import *
def prime(n):
    for j in range(2, int(sqrt(n))+1):
        if n%j==0:
           return 0
    return 1

x = int(input())
i = 0
n = 2
while i<x:
    if str(n)==str(n)[::-1] and prime(n):
        print(n, end=' ')
        i+=1
    n+=1

第2关:反素数

任务描述

反素数(逆向拼写的素数)是指一个将其逆向拼写后也是一个素数的非回文数。

例如:

13和31都是素数,且13和31都不是回文数,所以,13和31是反素数。

输入一个正整数 n , 请在同一行输出从小到大排列的的前n个反素数,每个数字后面加一个空格。

输入格式

输入一个正整数

输出格式

符合条件的反素数

示例

输入:

python 复制代码
10

输出:

python 复制代码
13 17 31 37 71 73 79 97 107 113 

参考代码

python 复制代码
# 禁止转载,原文:https://blog.csdn.net/qq_45801887/article/details/134911113
from math import*
def prime(n):
    for j in range(2,int(sqrt(n))+1):
        if n%j==0:
            return 0
    return 1
    
def reverse(m):
    m1= int(m[::-1])
    if str(m1)!=m and prime(m1):
        return 1
    return 0

x = int(input())
i, a = 0, 2
while i<x:
    if prime(a) and reverse(str(a)):
        print(a, end=' ')
        i+=1
    a+=1

第3关:哥德巴赫猜想

任务描述

1742年,哥德巴赫给欧拉的信中提出了以下猜想"任一大于2的整数都可写成三个质数之和"。常见的猜想陈述为欧拉的版本,即任一大于2的偶数都可写成两个素数之和,亦称为"强哥德巴赫猜想"或"关于偶数的哥德巴赫猜想"。比如:24=5+19,其中5和19都是素数。

输入一个正整数N,当输入为偶数时,分行按照格式"N = p + q"输出N的所有素数分解,其中p 、 q均为素数且p ≤ q。当输入为奇数或N<4时,输出'Data error!' 。

输入格式

输入一个正整数

输出格式

当输入为偶数时,分行按照格式"N = p + q"输出N的所有素数分解,其中p 、 q均为素数且p ≤ q。当输入为奇数或N<4时,输出'Data error!' 。

示例 1

输入:

python 复制代码
30

输出:

python 复制代码
30=7+23
30=11+19
30=13+17

示例 2

输入:

python 复制代码
77

输出:

python 复制代码
Data error!

参考代码

python 复制代码
# 禁止转载,原文:https://blog.csdn.net/qq_45801887/article/details/134911113
def is_prime(n):
    """判断素数的函数,接收一个正整数为参数,参数是素数时返回True,否则返回False"""
    #=======================================================
    # 补充你的代码    
    if n<2:
        return False
    for i in range(2,n):
        if n%i==0:
           return False
    else:
        return True
    #=======================================================

    
def goldbach_conjecture(num):
    """ 哥德巴赫猜想, 接收一个不小于4的正整数为参数。
    当参数为不小于4的偶数时,将其分解为两个素数的加和,按小数+数的格式输出。
    有多种组合时全部输出,但不输出重复的组合,例如输出8=3+5,不输出8=5+3。
    参数为奇数或小于4时,输出'Data error!'
    """
    #=======================================================
    # 补充你的代码
    if num<4 or num%2!=0:
        print('Data error!')
    else:
        for j in range(2,num):
            if is_prime(j) and is_prime(num-j) and j<=(num-j):
                print(f'{num}={j}+{(num-j)}')
    #=======================================================

if __name__ == '__main__':
    positive_even = int(input())        # 输入一个正数
    goldbach_conjecture(positive_even)

第4关:货币转换

任务描述

编写一个美元与人民币转换的程序,用户输入金额和汇率(合理的汇率是正数),输出转换为另一种货币表示的金额。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

python 复制代码
美元:'$'
人民币:'¥'

货币标识可从上述描述中复制

输入格式‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

第一行输入一个以货币符号结尾的正数,数值作为金额,货币符号表明货币种类‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

第二行输入一个浮点数作为汇率

输出格式‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

输入符合要求时输出一个带货币符号的数值(保留2位小数)‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

输入不符合要求时输出Data error!

示例 1‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

输入:

python 复制代码
58$
6.75

输出:

python 复制代码
391.50¥‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

示例 2‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

输入:

python 复制代码
100¥
6.85

输出:

python 复制代码
14.60$‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

示例 3‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

输入:

python 复制代码
58
6.75

输出:

python 复制代码
Data error!‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

参考代码

python 复制代码
# 禁止转载,原文:https://blog.csdn.net/qq_45801887/article/details/134911113
a = input().strip()
b = float(input())
if b<=0:
    print('Data error!')
elif '$' in a:
    c = eval(a[0:-1])*b
    print(f'{c:.2f}¥ ')
elif '¥' in a:
    c = int(a[0:-1])/b
    print(f'{c:.2f}$')
else:
    print('Data error!')

第5关:个人信息提取

任务描述

用户输入自己的个人信息,格式如下:

0122923450321 王昊 法学1801 河北 2001年

数据分别表示:学号 姓名 专业班级 籍贯 出生年份,各数据间空格间隔

有些用户没有按照规则输入数据,输入自己出生年份的时候写成了类似'1900年生'或'出生于1985'或'19岁生于2006年11月'的数据格式

请注意程序仍然需要正确读取该项数据,本题保证这些用户输入时一定只含有1个4位数字连续组成的年份数据。

请按照输出样式输出姓名,班级,出生年份呢

提示:

列表中的数据和字符串当中的字符一样,都具有有序的索引,且引用数据和切片方式一致。
str.isdigit()可以帮助判断字符串是否全部由数字字符组成,返回值为'True'或'False'

输入示例

python 复制代码
0122923450321 王昊 法学1801 河北 2001年

输出示例

python 复制代码
姓名:王昊 
班级:法学1801 
出生:2001年

示例

输入:

python 复制代码
0122923450321 王昊 法学1801 河北 2001年

输出:

python 复制代码
姓名:王昊
班级:法学1801
出生:2001年

参考代码

python 复制代码
# 禁止转载,原文:https://blog.csdn.net/qq_45801887/article/details/134911113
a = input()
b = a.split(' ')
for i in range(1980, 2023):
    if str(i) in b[4]:
       break
print('姓名:' + b[1])
print('班级:' + b[2])
print('出生:' + str(i) + '年')

第6关:身份证号基本信息

任务描述

18位身份证号码第7-10位为出生年份(四位数),第11-12位为出生月份,第13-14位代表出生日期,第17位代表性别,奇数为男,偶数为女。 用户输入一个合法的身份证号,请输出用户的出生年月日和性别。(不要求较验输入的合法性)

输入格式

输入一个合法的身份证号字符串

输出格式

类似以下格式输出:

出生:1995年11月11日 性别:女

示例 1

输入:

python 复制代码
110111199511111101

输出:

python 复制代码
出生:1995年11月11日
性别:女

参考代码

python 复制代码
# 禁止转载,原文:https://blog.csdn.net/qq_45801887/article/details/134911113
a = input()
if a[16] in '02468x':
    print(f'出生:{a[6:10]}年{a[10:12]}月{a[12:14]}日')
    print('性别:女')
elif a[16] in '13579':
    print(f'出生:{a[6:10]}年{a[10:12]}月{a[12:14]}日')
    print('性别:男') 
相关推荐
coberup5 分钟前
django Forbidden (403)错误解决方法
python·django·403错误
逊嘘13 分钟前
【Java语言】抽象类与接口
java·开发语言·jvm
Half-up15 分钟前
C语言心型代码解析
c语言·开发语言
龙哥说跨境37 分钟前
如何利用指纹浏览器爬虫绕过Cloudflare的防护?
服务器·网络·python·网络爬虫
Source.Liu37 分钟前
【用Rust写CAD】第二章 第四节 函数
开发语言·rust
monkey_meng37 分钟前
【Rust中的迭代器】
开发语言·后端·rust
余衫马40 分钟前
Rust-Trait 特征编程
开发语言·后端·rust
monkey_meng44 分钟前
【Rust中多线程同步机制】
开发语言·redis·后端·rust
Jacob程序员1 小时前
java导出word文件(手绘)
java·开发语言·word
小白学大数据1 小时前
正则表达式在Kotlin中的应用:提取图片链接
开发语言·python·selenium·正则表达式·kotlin