【题解】浙大版《Python 程序设计》题目集

       互联网行业的小白,写博客的目的是为了记录自己的学习过程、对自己学习中所犯的错误做一个总结。由于水平有限,博客中难免会有一些错误出现,有纰漏之处恳请各位大佬不吝赐教!

浙大版《Python 程序设计》题目集【题解】

  • 第1章-1 从键盘输入两个数,求它们的和并输出
  • 第1章-2 从键盘输入三个数到a,b,c中,按公式值输出
  • 第1章-3 输出“Python语言简单易学”
  • 第2章-1 计算 11+12+13+...+m
  • 第2章-2 计算分段函数[1]
  • 第2章-3 阶梯电价
  • 第2章-4 特殊a串数列求和
  • 第2章-5 求奇数分之一序列前N项和
  • 第2章-6 求交错序列前N项和
  • 第2章-7 产生每位数字相同的n位数
  • 第2章-8 转换函数使用
  • 第2章-9 比较大小
  • 第2章-10 输出华氏-摄氏温度转换表
  • 第2章-11 求平方与倒数序列的部分和
  • 第2章-12 输出三角形面积和周长
  • 第2章-13 分段计算居民水费
  • 第2章-14 求整数段和
  • 第3章-1 3-1.大于身高的平均值
  • 第3章-2 查验身份证
  • 第3章-3 输出字母在字符串中位置索引
  • 第3章-4 查找指定字符
  • 第3章-5 字符转换
  • 第3章-6 求整数序列中出现次数最多的数
  • 第3章-7 求最大值及其下标
  • 第3章-8 字符串逆序
  • 第3章-9 字符串转换成十进制整数
  • 第3章-10 统计大写辅音字母
  • 第3章-11 字符串排序
  • 第3章-12 求整数的位数及各位数字之和
  • 第3章-13 字符串替换
  • 第3章-14 字符串字母大小写转换
  • 第3章-15 统计一行文本的单词个数
  • 第3章-16 删除重复字符
  • 第3章-17 删除字符
  • 第3章-18 输出10个不重复的英文字母
  • 第3章-19 找最长的字符串
  • 第3章-20 逆序的三位数
  • 第3章-21 判断回文字符串
  • 第3章-22 输出大写英文字母
  • 第4章-1 生成3的乘方表
  • 第4章-2 统计素数并求和
  • 第4章-3 猴子吃桃问题
  • 第4章-4 验证“哥德巴赫猜想”
  • 第4章-5 求e的近似值
  • 第4章-6 输出前 n 个Fibonacci数
  • 第4章-7 统计学生平均成绩与及格人数
  • 第4章-8 求分数序列前N项和
  • 第4章-9 查询水果价格
  • 第4章-10 最大公约数和最小公倍数
  • 第4章-11 判断素数
  • 第4章-12 求满足条件的斐波那契数
  • 第4章-13 求误差小于输入值的e的近似值
  • 第4章-14 统计字符
  • 第4章-15 换硬币
  • 第4章-16 jmu-python-判断是否构成三角形
  • 第4章-17 水仙花数
  • 第4章-19 矩阵运算
  • 第4章-20 求矩阵各行元素之和
  • 第4章-21 判断上三角矩阵
  • 第4章-22 找鞍点
  • 第4章-23 求矩阵的局部极大值
  • 第4章-24 打印九九口诀表
  • 第4章-25 输出三角形字符阵列
  • 第4章-26 求1!+3!+5!+……+n!

第1章-1 从键盘输入两个数,求它们的和并输出

  • 从键盘输入两个数,求它们的和并输出

AC代码

a = int(input())
b = int(input())
print(a + b)

第1章-2 从键盘输入三个数到a,b,c中,按公式值输出

  • 从键盘输入三个数到a,b,c中,按公式值输出

AC代码

a,b,c=map(int,input().split())
print(b * b - 4 * a * c)

第1章-3 输出“Python语言简单易学”

  • 输出“Python语言简单易学”

AC代码

s = "Python语言简单易学"
print(s.encode("utf-8"))

第2章-1 计算 11+12+13+…+m

  • 计算 11+12+13+…+m

AC代码

m = int(input())
sum = 0
i = 11
while i <= m:
    sum += i
    i += 1
print(f'sum = {sum}')

第2章-2 计算分段函数[1]

  • 计算分段函数[1]

AC代码

x = float(input())
if x == 0:
    print('f(0.0) = 0.0')
else:
    print("f(%.1f) = %.1f" % (x, 1/x))

第2章-3 阶梯电价

  • 阶梯电价

AC代码

a = float(input())
if a < 0:
    print('Invalid Value!')
elif a <= 50:
    print("cost = %.2f" % (0.53 * a))
else:
    print("cost = %.2f" % (0.53 * 50 + ((0.53 + 0.05) * (a - 50))))

第2章-4 特殊a串数列求和

  • 特殊a串数列求和

AC代码

a, n = map(int, input().split())
flag = a
sum = 0
for i in range(n):
    sum += a
    a = a * 10 + flag
print("s = %d" % sum)

第2章-5 求奇数分之一序列前N项和

  • 求奇数分之一序列前N项和

AC代码

N = int(input())
sum = 0.0
i = 1
n = 0
while True:
    sum += 1 / i
    i += 2
    n += 1
    if n == N:
        break
print("sum = %.6f" % sum)

第2章-6 求交错序列前N项和

  • 求交错序列前N项和

AC代码

N = int(input())
sum = 0.0
i = 1
n = 0
son = 1
far = 1
while True:
    if i % 2 == 1:
        sum += son / far
    else:
        sum -= son / far
    i += 1
    son += 1
    far += 2
    n += 1
    if n == N:
        break
print("%.3f" % sum)

第2章-7 产生每位数字相同的n位数

  • 产生每位数字相同的n位数

AC代码

A, B = map(int, input().split(','))
for i in range(B):
    print(A, end='')

第2章-8 转换函数使用

  • 转换函数使用

AC代码

A, B = map(int, input().split(','))
f = str(A)
sum = 0
for i in range(len(f)):
    sum += int(f[i]) * pow(B, len(f)-1-i)
print(sum)

第2章-9 比较大小

  • 比较大小

AC代码

a, b, c = map(int, input().split())
print(*sorted([a, b, c]), sep="->")
C=5*(lower−32)/9

第2章-10 输出华氏-摄氏温度转换表

  • 输出华氏-摄氏温度转换表

AC代码

lower, upper = map(int, input().split())
if lower <= upper and lower <= 100 and  upper <= 100:
    print('fahr celsius')
    while lower <= upper:
        # 占据6个字符宽度,靠右对齐,保留1位小数
        print("{:d}{:>6.1f}".format(lower, (5 * (lower - 32) / 9)))
        lower += 2
else:
    print('Invalid.')

第2章-11 求平方与倒数序列的部分和

  • 求平方与倒数序列的部分和

AC代码

m, n = map(int, input().split())
sum = 0
for i in range(m, n + 1):
    sum += (i * i + 1 / i)
print("sum = {:.6f}".format(sum))

第2章-12 输出三角形面积和周长

  • 输出三角形面积和周长

AC代码

import math
a, b, c = map(int, input().split())
if a + b > c and a + c > b and b + c > a:
    s = (a + b + c) / 2
    area = math.sqrt(s * (s - a) * (s - b) * (s - c))
    perimeter = a + b + c
    print("area = {:.2f}; perimeter = {:.2f}".format(area, perimeter))
else:
    print('These sides do not correspond to a valid triangle')

第2章-13 分段计算居民水费

  • 分段计算居民水费

AC代码

x = float(input())
if x <= 15:
    print("{:.2f}".format(4 * x / 3))
else:
    print("{:.2f}".format(2.5 * x - 17.5))

第2章-14 求整数段和

  • 求整数段和

AC代码

A, B = map(int, input().split())
sum = 0
k = 0
for i in range(A, B + 1):
    print("{:>5d}".format(i), end='')
    k += 1
    if k % 5 == 0:
        print("\n", end='')
    sum += i
if k % 5 == 0:
    print("Sum = {:d}".format(sum))
else:
    print("\nSum = {:d}".format(sum))

第3章-1 3-1.大于身高的平均值

  • 3-1.大于身高的平均值

AC代码

from numpy import *
lst = list(map(int, input().split()))
avg = mean(lst)
for i in lst:
    if i >= avg:
        print(i, end=' ')

第3章-2 查验身份证

  • 查验身份证

AC代码

def func(lst):
    sum = 0
    for i in range(0, 17):
        if lst[i] >= '0' and lst[i] <= '9':
            sum += weight[i] * int(lst[i])
        else:
            return False
    if M[sum % 11] == lst[17]:
        return True
    else:
        return False
n = int(input())
M = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2']
weight = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]
count = 0
for i in range(n):
    lst = input()
    if func(lst):
        count += 1
    else:
        print(lst)
if count == n:
    print('All passed')

第3章-3 输出字母在字符串中位置索引

  • 输出字母在字符串中位置索引

AC代码

lst = input()[::-1]
a, b = input().split()
for i, j in enumerate(lst):
    if j == b:
        print("{:d} {:s}".format(len(lst) - i - 1, b))
for i, j in enumerate(lst):
    if j == a:
        print("{:d} {:s}".format(len(lst) - i - 1, a))

第3章-4 查找指定字符

  • 查找指定字符

AC代码

a = input()
lst = input()
index = -1
for i, j in enumerate(lst):
    if j == a:
        index = i
if index == -1:
    print('Not Found')
else:
    print("index = {:d}".format(index))

第3章-5 字符转换

  • 字符转换

AC代码

lst = input()
ans = []  # 将字符串中的所有整数存放在一个列表中,方便处理
for i in lst:
    if i.isdigit():
        ans.append(i)
flag1 = True  # 控制前面的0
flag2 = True  # 控制中间的0
for i in ans:
    if i == '0' and flag1:
        if flag2:
            continue
    print(i, end='')
    flag2 = False
if flag2:  # 出现a000的情况,要输出0
    print(0)

第3章-6 求整数序列中出现次数最多的数

  • 求整数序列中出现次数最多的数

AC代码

写法1:
lst = list(map(int, input().split()))[1:]
num, count = 0, 0
for i in lst:
    if lst.count(i) > count:
        count = lst.count(i)
        num = i
print("{} {}".format(num, count))
 
 
写法2:
lst = list(map(int, input().split()))
N = lst[0]
ans = [0 for i in range(N)]  # 列表推导式
for i in range(1, N + 1):
    ans[lst[i]] += 1
print(ans)
MAX = max(ans)
for i, j in enumerate(ans):
    if MAX == j:
        print("{:d} {:d}".format(i, j))

第3章-7 求最大值及其下标

  • 求最大值及其下标

AC代码

n = int(input())
lst = list(map(int, input().split()))
MAX = max(lst)
for i, j in enumerate(lst):
    if j == MAX:
        print("{} {}".format(MAX, i))
        break

第3章-8 字符串逆序

  • 字符串逆序

AC代码

lst = list(input())
lst1 = lst[::-1]
for i in lst1:
    print(i, end='')

第3章-9 字符串转换成十进制整数

  • 字符串转换成十进制整数

AC代码

lst = input()[-2::-1][::-1]  # 得到除了#的字符串
temp, s = '', ''  # temp存放16进制字符,s存放符号
flag = True  # 是否存在-号的标记
for i in lst:
    if i == '-' and flag:
        s = '-'
        flag = False
    if '0' <= i <= '9' or 'a' <= i <= 'f' or 'A' <= i <= 'F':
        if '0' <= i <= '9':
            temp += i
        else:
            temp += i.upper()
        flag = False  # 注意:第一个十六进制字符之前存在字符“-”
if temp != '':
    print("{}{}".format(s,int(temp, 16)))  # 巧用int函数进行16->10进制的转换
else:
    print(0)  # 不存在符合条件的字符,输出0

第3章-10 统计大写辅音字母

  • 统计大写辅音字母

AC代码

goal = ['A', 'E', 'I', 'O', 'U']
lst = list(input())
cnt = 0
for i in lst:
    if i not in goal and i.isupper():
        cnt += 1
print(cnt)

第3章-11 字符串排序

  • 字符串排序

AC代码

lst = list(map(str, input().split()))
lst.sort()
print('After sorted:')
for i in lst:
    print(i)

第3章-12 求整数的位数及各位数字之和

  • 求整数的位数及各位数字之和

AC代码

lst = list(input())
sum = 0
for i in lst:
    sum += int(i)
print("{} {}".format(len(lst), sum))

第3章-13 字符串替换

  • 字符串替换

AC代码

# 方法1:
lst = list(input())
a = [chr(i) for i in range(65,91)][::-1]  # 产生一个大写字母逆序序列
b = [chr(i) for i in range(65,91)]  # 产生一个大写字母序列
for i in lst:
    if i.isupper():
        print(a[b.index(i)], end='')
    else:
        print(i, end='')
 
# 方法2:
lst = list(input())
for i in lst:
    if i.isupper():
        print(chr(155 - ord(i)), end='')
    else:
        print(i, end='')

第3章-14 字符串字母大小写转换

  • 字符串字母大小写转换

AC代码

lst = list(map(str, input()))
lst.pop()  # 去掉最后一个
ans = lst
for i, j in enumerate(lst):
    if j.isupper():
        ans[i] = j.lower()
    if j.islower():
        ans[i] = j.upper()
for i in ans:
    print(i, end='')

第3章-15 统计一行文本的单词个数

  • 统计一行文本的单词个数

AC代码

lst = list(input().split())
print(len(lst))

第3章-16 删除重复字符

  • 删除重复字符

AC代码

lst = list(set(input()))  # 集合接受自动判重
lst.sort()  # 列表自动排序
for i in lst:
    print(i, end='')

第3章-17 删除字符

  • 删除字符

AC代码

# 注意空格是本题目的坑
# 此代码还可以用作删除所有在s中出现的不连续字符
lst = list(map(str, input().strip()))  # input().strip()解决
s = set(input().strip())
ans = []
for i in lst:
    if i not in s and i.lower() not in s and i.upper() not in s:
        ans.append(i)
print('result: ', end='')
for i in ans:
    print(i, end='')

第3章-18 输出10个不重复的英文字母

  • 输出10个不重复的英文字母

AC代码

lst = input()
count = 0
set1 = set()  # 定义一个空集合
for i in lst:
    if i.isalpha() and i.lower() not in set1:
        set1.add(i.lower())  # 统一将小写放入
        count += 1
if count < 10:
    print('not found')
else:
    cnt = 0
    for i in lst:
        if i.isalpha() and i.lower() in set1:
            print(i, end='')
            cnt += 1
            set1.remove(i.lower())  # 输出一个集合中删除一个
            if cnt == 10:
                break

第3章-19 找最长的字符串

  • 找最长的字符串

AC代码

#方法1:
n = int(input())
lst = []
for i in range(n):
    lst.append(input())
num = []
for i in lst:
    num.append(len(i))
cnt = max(num)
for i, j in enumerate(lst):
    if len(j) == cnt:
        print("The longest is: {:s}".format(j))
        break
 
#方法2:
n = int(input())
MAX = -1
ans = ''
for i in range(n):
    temp = input()
    if len(temp) > MAX:
        MAX = len(temp)
        ans = temp
print("The longest is: {:s}".format(ans))

第3章-20 逆序的三位数

  • 逆序的三位数

AC代码

lst = input()[::-1]
flag = True
for i in lst:
    if i == '0' and flag:
        continue
    else:
        print(i, end='')
        flag = False
 
lst = int(input()[::-1])
print(lst)

第3章-21 判断回文字符串

  • 判断回文字符串

AC代码

# 方法1:
lst = input()
flag = True
if len(lst) % 2 == 1:
    for i in range((len(lst) // 2)):
        if lst[i] != lst[len(lst) - i - 1]:
            flag = False
else:
    for i in range(((len(lst) - 1) // 2)):
        if lst[i] != lst[len(lst) - i - 1]:
            flag = False
print(lst)
if flag:
    print('Yes')
else:
    print('No')
 
# 方法2:
lst = input()
lst1 = reversed(list(lst))
print(lst)
if list(lst1) == list(lst):
    print('Yes')
else:
    print('No')

第3章-22 输出大写英文字母

  • 输出大写英文字母

AC代码

lst = input()
ans = []
for i in lst:
    if i.isupper() and i not in ans:
        print(i, end='')
        ans.append(i)
if not len(ans):
    print('Not Found')

第4章-1 生成3的乘方表

  • 生成3的乘方表

AC代码

n = int(input())
for i in range(n + 1):
    print("pow(3,{:d}) = {:d}".format(i, pow(3, i)))

第4章-2 统计素数并求和

  • 统计素数并求和

AC代码

import math
def isPrime(n):
    if n < 2:
        return False
    for i in range(2, int(math.sqrt(n) + 1)):
        if n % i == 0:
            return False
    return True
M, N = map(int, input().split())
sum = 0
cnt = 0
for i in range(M, N + 1):
    if isPrime(i):
        cnt += 1
        sum += i
print("{:d} {:d}".format(cnt, sum))

第4章-3 猴子吃桃问题

  • 猴子吃桃问题

AC代码

# 方法1:
def getNmu(flag):
    for n in range(5000):
        if n - (n / 2 + 1) == flag:
            return n
n = int(input())
temp = 1
for i in range(n - 1):
    temp = getNmu(temp)
print(temp)
 
# 方法2:
n = int(input())
sum = 1
for i in range(n - 1):
    sum = (sum + 1) * 2
print(sum)

第4章-4 验证“哥德巴赫猜想”

  • 验证“哥德巴赫猜想”

AC代码

import math
def isPrime(n):
    if n < 2:
        return False
    for i in range(2, int(math.sqrt(n) + 1)):
        if n % i == 0:
            return False
    return True
n = int(input())
for i in range(2,n):  # 注意,5和4都是
    if isPrime(i) and isPrime(n - i):
        print("{:d} = {:d} + {:d}".format(n, i, n - i))
        break

第4章-5 求e的近似值

  • 求e的近似值

AC代码

#  注意不能算阶乘,会溢出范围
n = int(input())
sum = 1
a = 1
for i in range(1, n + 1):
    a *= i
    sum += 1 / a
print("{:.8f}".format(sum))

第4章-6 输出前 n 个Fibonacci数

  • 输出前 n 个Fibonacci数

AC代码

N = int(input())
if N < 1:
    print('Invalid.')
else:
    k = 0
    f1 = f2 = 1
    for i in range(1, N + 1):
        if i > 2:
            f1, f2 = f2, f1 + f2
        print("{:>11d}".format(f2), end='')
        k += 1
        if k % 5 == 0:
            print()

第4章-7 统计学生平均成绩与及格人数

  • 统计学生平均成绩与及格人数

AC代码

n = int(input())
if n == 0:  # 这是本题最坑的点
    print("average = {:.1f}\ncount = {:d}".format(0.0, 0))
else:
    score = list(map(int, input().split()))
    average = sum(score) / len(score)
    count = 0
    for i in range(n):
        if score[i] >= 60:
            count += 1
    print("average = {:.1f}\ncount = {:d}".format(average, count))

第4章-8 求分数序列前N项和

  • 求分数序列前N项和

AC代码

n = int(input())
f1, f2 = 1, 2
sum = 0
for i in range(n):
    sum += f2 / f1
    f1, f2 = f2, f1 + f2
print("{:.2f}".format(sum))

第4章-9 查询水果价格

  • 查询水果价格

AC代码

lst = list(map(int, input().split()))
first = """[1] apple
[2] pear
[3] orange
[4] grape
[0] exit"""
count = 0
print(first)
for i in lst:
    if i == 0:
        exit(0)
    elif i == 1:
        print("price = 3.00")
    elif i == 2:
        print("price = 2.50")
    elif i == 3:
        print("price = 4.10")
    elif i == 4:
        print("price = 10.20")
    else:
        print("price = 0.00")
    count += 1
    if count == 5:
        break

第4章-10 最大公约数和最小公倍数

  • 最大公约数和最小公倍数

AC代码

def Gcd(m, n):
    if m % n == 0:
        return n
    else:
        return Gcd(n, m % n)
m, n = map(int, input().split())
print("{} {}".format(Gcd(m, n), int(m * n / Gcd(m, n))))

第4章-11 判断素数

  • 判断素数

AC代码

import math
def isPrime(n):
    if n < 2:
        return False
    for i in range(2, int(math.sqrt(n)) + 1):
        if n % i == 0:
            return False
    return True
N = int(input())
for i in range(N):
    if isPrime(int(input())):
        print('Yes')
    else:
        print('No')

第4章-12 求满足条件的斐波那契数

  • 求满足条件的斐波那契数

AC代码

n = int(input())
f1, f2 = 1, 1
while True:
    f1, f2 = f2, f1 + f2
    if f2 > n:
        print(f2)
        break

第4章-13 求误差小于输入值的e的近似值

  • 求误差小于输入值的e的近似值

AC代码

def func(n):
    if n < 2:
        return 1
    return n * func(n - 1)


if __name__ == '__main__':
    error = float(input())
    sum = 1.0
    n = 1
    while True:
        sum += 1.0 / func(n)
        if 1.0 / func(n + 1) < error:
            print("{:.6f}".format(sum + 1.0 / func(n + 1)))
            break
        n += 1

第4章-14 统计字符

  • 统计字符

AC代码

# 注意python3的input函数不能接受回车符,所以本题主要是解决回车的问题
if __name__ == '__main__':
    letter = blank = digit = other = 0
    sum = 0
    while sum < 10:
        temp = input()
        for i in temp:
            sum += 1
            if i.isalpha():
                letter += 1
            elif i.isdigit():
                digit += 1
            elif i == ' ':
                blank +=1
            else:
                other += 1
        if sum < 10:
            blank += 1
            sum += 1
    print("letter = {}, blank = {}, digit = {}, other = {}".format(letter, blank, digit, other))

第4章-15 换硬币

  • 换硬币

AC代码


第4章-16 jmu-python-判断是否构成三角形

  • jmu-python-判断是否构成三角形

AC代码

if __name__ == '__main__':
    a, b, c = map(int, input().split())
    if a + b > c and a + c > b and b + c > a:
        print('yes')
    else:
        print('no')

第4章-17 水仙花数

  • 水仙花数

AC代码

if __name__ == '__main__':
    n = int(input())
    for i in range(10 ** (n - 1), 10 ** n):
        temp = str(i)
        sum = 0
        for j in temp:
            sum += int(j) ** n
        if sum == i:
            print(i)

第4章-19 矩阵运算

  • 矩阵运算

AC代码

if __name__ == '__main__':
    n = int(input())
    lst = []
    for i in range(n):
        temp = input()
        lst.append([int(n) for n in temp.split()])
    sum = 0
    for i in range(n):
        for j in range(n):
            if j != n - 1 and i != n - 1 and i + j != n - 1:
                sum += lst[i][j]
    print(sum)

第4章-20 求矩阵各行元素之和

  • 求矩阵各行元素之和

AC代码

if __name__ == '__main__':
    m, n = map(int, input().split())
    lst = []
    for i in range(m):
        temp = map(int, list(input().split()))
        print(sum(temp))

第4章-21 判断上三角矩阵

  • 判断上三角矩阵

AC代码

if __name__ == '__main__':
    N = int(input())
    for k in range(N):
        n = int(input())
        lst = []
        for i in range(n):
            temp = input()
            lst.append([int(n) for n in temp.split()])
        flag = True
        for row in range(n):
            for column in range(row):
                if lst[row][column] != 0:
                    flag = False
        if flag:
            print("YES")
        else:
            print("NO")

第4章-22 找鞍点

  • 找鞍点

AC代码

"""
思路:
将二维数组存入lst中
遍历每行,找出每行的最大值
再找到每行的最大值时,再判断此最大值是否是"所在列的最小值"
如果是,输出下表结束
flag只是标记知否找到了所谓的"鞍点"
"""
if __name__ == '__main__':
    n = int(input())
    lst = []
    for k in range(n):
        temp = input()
        lst.append([int(x) for x in temp.split()])
    flag = True
    for row in range(n):
        row_flag = column_flag = 0
        row_max = lst[row][0]
        for column in range(n):
            if lst[row][column] >= row_max:
                row_max = lst[row][column]
                row_flag = row
                column_flag = column
        column_min = lst[row_flag][column_flag]
        for i in range(n):
            if lst[i][column_flag] <= column_min:
                column_min = lst[i][column_flag]
        if column_min == row_max:
            print(row_flag, column_flag)
            flag = False
            break
    if flag:
        print("NONE")

第4章-23 求矩阵的局部极大值

  • 求矩阵的局部极大值

AC代码

if __name__ == '__main__':
    M, N = map(int, input().split())
    lst = []
    for k in range(M):
        temp = input()
        lst.append([int(n) for n in temp.split()])
    flag = True
    for i in range(1, M - 1):
        for j in range(1, N - 1):
            if lst[i][j] > lst[i-1][j] and lst[i][j] > lst[i+1][j] and lst[i][j] > lst[i][j-1] and lst[i][j] > lst[i][j+1]:
                print(lst[i][j], i + 1, j + 1)
                flag = False
    if flag:
        print("None", M, N)

第4章-24 打印九九口诀表

  • 打印九九口诀表

AC代码

"""
对齐方式.<,>,^分别代表左,右,居中对齐,默认为右对齐;
"""
if __name__ == '__main__':
    N = int(input())
    for i in range(N):
        for j in range(N):
            if i >= j:
                print("{}*{}={:<4d}".format(j+1,i+1,(i+1)*(j+1)),end='')
        print()

第4章-25 输出三角形字符阵列

  • 输出三角形字符阵列

AC代码

if __name__ == '__main__':
    n = int(input())
    c = 65 # 字母A的ASCII
    m = n
    for i in range(n):
        for j in range(m):
            print(chr(c), end=' ')
            c += 1
        m -= 1
        print()

第4章-26 求1!+3!+5!+……+n!

  • 求1!+3!+5!+……+n!

AC代码

if __name__ == '__main__':
    n = int(input())
    sum = 0
    for i in range(1, n + 1):
        if i % 2 == 1:
            temp = 1
            for j in range(1, i + 1):
                temp *= j
            sum += temp
    print("n={},s={}".format(n, sum))

持续更新中......

码字不易,您的支持就是我坚持下去的动力,一起加油哦。

你可能感兴趣的:(【题解】PTA,1024程序员节,python,程序设计,算法)