您好,欢迎访问代理记账网站
  • 价格透明
  • 信息保密
  • 进度掌控
  • 售后无忧

【PAT乙级】【PYTHON】63 / 95 题目分析 | python课程期末复习 | 知识点应用

在这里插入图片描述
本篇博文参考资料:《Python 数据分析、挖掘与可视化》 ——董付国编著

PAT 乙级 Python 基础题 【链接】


1001 害死人不偿命的(3n+1)猜想


题目链接:点我

知识点:函数 + 递归

题目思路:
函数f( x ) 求最终结果

递归终止条件: x == 1 成立 ,返回 0

其他情况:
x 为 奇数 :返回f ( x // 2) + 1的值
x 为 偶数: 返回 f( ( 3 * x + 1) // 2) + 1的值

def f(x):
    if x == 1:
        return 0
    elif x % 2 == 0:
        return f(x // 2) + 1
    else:
        return f((3 * x + 1) // 2) + 1
print( f( int( input() ) ) )

1002 写出这个数


题目链接:点我

知识点:字符串分割 + 列表推导式 + 列表求和 + 序列解包

题目思路:

(1) 对各位求和

列表推导式取每一位数字保存成列表、再利用列表sum的函数对列表求和

(2) 打印数字对应拼音

把所有拼音放到同一个字符串,不同拼音之间用逗号隔开,用字符串的split分割函数对字符串分割,返回结果为一个列表

(3) 输出结果

列表推导式将数字转化成对应拼音,序列解包输出

n = sum([int(x) for x in input()])
a = "ling,yi,er,san,si,wu,liu,qi,ba,jiu".split(',')
res = [a[int(i)] for i in str(n)]
print(*res)

1003 我要通过!


题目链接:点我

知识点:字符串查找字符、字符串字符统计、字符串切片、三目运算符

题目思路:

思考返回true 即 答案正确的条件:

  • 1.必须仅有 P 、A、T 三种字符
  • 2.任意形如 xPATx
    • 2.1 x为空 即 PAT
    • 2.2 x为全A 即 APATA 或 AAPATAA… 等等
  • 3.(在条件2的基础上)若aPbTc 正确 那么 aPbATca 也正确
    • 3.1 a、b、c均为若干个空,即 PAT、PAAT、PATAA
    • 3.2 a、b、c均为若干个A, 即APATA、APAATAA
      第1个条件很好理解,只能包含PAT

综合第2、3个条件可得,
1)字符串只能有一个P一个T,中间末尾和开头可以随便插入A

2)开头的A的个数 * 中间的A的个数 = 结尾的A的个数

3)而且P和T之间必须有A

接下来是代码的思路:
用 字符串的rfind函数从右往左分别查找p 、t 位置,(从右往左是因为可能会出现多个p和多个t,为了避免判断这一步,直接以最后的p和t位置为准),这样就方便对字符串进行切片,直接统计 p前面a的个数、p与t之间a的个数、t之后a的个数

之后在根据总结的规律判断

特殊的三目运算 值1 if 条件 == True else 值2

当条件满足时,直接返回值1,而不满足时,即结果为False时,则返回值2

for _ in range(int(input())):
    s = input()
    A = [0,0,0]  #分别表示 P 之前、PT之间、 T之后 A的个数,
    p, t = s.rfind('P'), s.rfind('T')
    ok = [False for x in s if x not in 'PAT']
    if len(ok) == 0:
        A[0] = s[:p].count('A')     # 求 P 前面的 A 个数
        A[1] = s[p+1:t].count('A')  # 求 P 和 T 之间 A的个数
        A[2] = s[t:].count('A')     # 求 T之后 A的个数
        # P前面的A的个数 乘以 P与T之间的A的个数 是否等于 T后面A的个数
        ok = True if A[0] * A[1] == A[2] and A[1] != 0 else False
    else:
        ok = False
    print('YES' if ok == True else 'NO')

分享:

低价透明

统一报价,无隐形消费

金牌服务

一对一专属顾问7*24小时金牌服务

信息保密

个人信息安全有保障

售后无忧

服务出问题客服经理全程跟进