PTA-Python学习笔记集

文章目录

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

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

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

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

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

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

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

m = int(input())
sum = 0
for i in range(11, m + 1):
    sum += i
print("sum = {}".format(sum))

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

x = float(input())

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

第2章-3 阶梯电价

a = float(input())
tot = 0
if a < 0:
    print("Invalid Value!")
else:
    if a >= 50:
        tot += 50 * 0.53
        tot += (a - 50) * 0.58
    else:
        tot += a * 0.53

    print("cost = %.2f" % tot)

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

a, b = input().split(' ')
a = int(a)
b = int(b)
cnt = tot = res = 0
while cnt < b:
    tot = tot * 10 + a
    res += tot
    cnt += 1
print("s = %d" % res)

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

a = int(input())
tot = 0.0
for i in range(1, 2 * a, 2):
    tot += 1.0 / i
print("sum = %.6f" % tot)

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

a = int(input())
tot = 0.0
op = 1
for i in range(1, a + 1):
    tot += i / (2 * i - 1) * op
    op *= -1
print("%.3f" % tot)

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

a, b = input().split(',')
a = int(a)
a = str(a)
b = int(b)
print(a * b)
a, b = input().split(',')
b = int(b)
print(a.strip('   ') * b)

函数:str.strip

str.strip()去掉字符串首尾的指定字符

str = "123abcrunoob321"
print (str.strip( '12' )) # 字符序列为 12
3abcrunoob3

第2章-8 转换函数使用

函数:eval转换作用

eval函数就是实现list、dict、tuple与str之间的转化
str函数把list,dict,tuple转为为字符串
https://blog.csdn.net/chen_zan_yu_/article/details/103339750

函数:int(,)转换函数

int('12',16) 
表示输入的12是一个16进制的数,int将其转换为10进制

函数:.split(“x”, num)分隔

txt = "Google#Runoob#Taobao#Facebook"
# 第二个参数为 1,返回两个参数列表
x = txt.split("#", 1)
# 第一个是分隔字符,第二个是分隔为num + 1个
['Google', 'Runoob#Taobao#Facebook']

第2章-9 比较大小

函数:print()中sep,end,file参数用法

end: 默认是换行,表示两个字符串最后以什么结尾。eg: 换行  end="\n"
sep: 默认是空格,表示两个字符串之间用什么分割。eg: 空格  sep="  "
sep用法(两个字符串之间)
print("file\n","abc","bcd","fff\n","poi")
print("-------------")
print("file\n","abc","bcd","fff\n","poi",sep='')
print("-------------")
print("file\n","abc","bcd","fff\n","poi",sep=' ')
print("-------------")

file
 abc bcd fff
 poi
-------------
file
abcbcdfff
poi
-------------
file
 abc bcd fff
 poi
-------------
end用法(字符串结尾)
print("file\n","abc","fff",sep='#########\n',end='')
print("--------------------")
print("file\n","abc","fff",sep='#########\n',end='\n')
print("--------------------")
print("file\n","abc","fff",sep='#########\n')
print("--------------------")

file
#########
abc#########
fff--------------------
file
#########
abc#########
fff
--------------------
file
#########
abc#########
fff
--------------------
file用法
with open('abc.txt','w') as f:
    print("file\n","abc","fff",sep='#########\n',end='',file=f)
 
输出到abc.txt文件,注意文件行末没有换行符
print(*sorted(map(int, input().split())), sep="->")

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

a, b = input().split()
a = int(a)
b = int(b)
if a > b:
    print("Invalid.")
else:
    print("fahr celsius")
    while a <= b:
        print("{:d}{:>6.1f}".format(a, 5 * (a - 32) / 9))
        a += 2

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

m, n = input().split()
m, n = int(m), int(n)
tot = 0
while m <= n:
    tot += m ** 2
    tot += 1 / m
    m += 1
print("sum = %.6f" % tot)

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

a, b, c = input().split()
a, b, c = int(a), int(b), int(c)
if a + b <= c or a + c <= b or b + c <= a:
    print("These sides do not correspond to a valid triangle")
else:
    s = (a + b + c) / 2
    S = (s * (s - a) * (s - b) * (s - c)) ** 0.5
    C = a + b + c
    print("area = {:.2f}; perimeter = {:.2f}".format(S, C))

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

x = int(input())
if x <= 15:
    print("{:.2f}".format(4 * x / 3))#注意不可以用注释了的方法
    #print("%.2f" % 4 * x / 3)
else:
    print("{:.2f}".format(2.5 * x - 17.5))
    #print("%.2f" % 2.5 * x - 17.5)

第2章-14 求整数段和

a, b = input().split()
a, b = int(a), int(b)
tot = 0
cnt = 0
for i in range(a, b + 1):
    cnt += 1
    tot += i
    print("{:>5}".format(i), end="")
    if cnt % 5 == 0:
        print("\n", end="")
    elif i == b:
        print("\n", end="")
print("Sum = %d" % tot)

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

lst = list(map(int, input().split()))
tot = 0
for i in range(0, len(lst)):
    tot += lst[i]
aver = tot / len(lst)
for i in range(0, len(lst)):
    if lst[i] > aver:
        print("{:d} ".format(lst[i]), end="")

第3章-2 查验身份证

第一用函数,python中需要注意不能有重名的变量,实参和形参的传递我也不知道该怎么更好的用变量来表达

jlist = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2']
flist = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]


def judge(_mlist):
    tot = 0
    rnum = _mlist[-1]
    _mlist = _mlist[:17]
    for _i in range(0, 17):
        if '9' >= _mlist[_i] >= '0':
            tot += int(_mlist[_i]) * flist[_i]
        else:
            return 0
    tot = tot % 11
    if rnum == jlist[tot]:
        return 1
    else:
        return 0


num = int(input())
cnt = 0

for i in range(num):
    mlist = input()
    if judge(mlist) == 0:
        print(mlist)
    else:
        cnt += 1
if cnt == num:
    print("All passed")

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

倒序字符串:s[::-1]

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

第3章-4 查找指定字符

利用find函数直接查找,找最大的时候倒序一下

a = input()
b = input()
if b.find(a) != -1:
    b = b[::-1]
    print("index = {:d}".format(len(b) - b.find(a) - 1))
else:
    print("Not Found")

第3章-5 字符转换

函数:str.join(x)通过str来连接x

str = "-";
seq = ("a", "b", "c"); # 字符串序列
print str.join( seq );

output : a-b-c
a = input()
b = []
for i in a:
    if i.isdigit():
        b.append(i)
print(int("".join(b)))

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

列表转字典转元组

counts = {}
lst = list(map(int, input().split()))
lst = lst[1: lst[0] + 1]
for i in lst:
    counts[i] = counts.get(i, 0) + 1
items = list(counts.items())
items.sort(key=lambda x: x[1], reverse=True)
word, count = items[0]
print("{:d} {:d}".format(word, count))

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

a = int(input())
lst = list(map(int, input().split()))
maxnum = max(lst)
print(maxnum, end=" ")
print(lst.index(maxnum))

第3章-8 字符串逆序

s = input()
print(s[::-1])

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

str1 = input()
s = "1234567890abcdefABCDEF"
c = ""
for i in str1:
    if i in s:
        c = c + i
if c == "":
    print("0")
elif str1.find(c[0]) > str1.find('-'):
    print(-int(c, 16))
else:
    print(int(c, 16))

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

s = "AEIOU"
str1 = input()
cnt = 0
for i in str1:
    if i.isupper() == 1 and i not in s:
        cnt += 1
print(cnt)

第3章-11 字符串排序

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

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

x = input()
res = 0
for i in range(len(x)):
    res += int(x[i])
print("{:d} {:d}".format(len(x), res))

第3章-13 字符串替换

s = input()
c = []
for i in s:
    if 'A' <= i <= 'Z':
        c.append(chr(155 - ord(i)))
    else:
        c.append(i)
print("".join(c))

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

s = input()
s = s.replace('#', '')
t = ''
for i in s:
    if i.islower():
        t += i.upper()
    elif i.isupper():
        t += i.lower()
    else:
        t += i
print(t)

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

s = input().split()
print(len(s))

第3章-16 删除重复字符

s = list(set(input()))
s.sort()
for i in s:
    print(i, end="")

第3章-17 删除字符

strip消除前面的空格,replace进行字符删除

函数:str.replace(old, new, max)

old - 将被替换的子字符串

new - 新字符串,用于替换old字符串

max - 可选字符串替换不超过max次

s1 = input().strip()
s2 = input().strip()
s1 = s1.replace(s2.upper(), "").replace(s2.lower(), "")
print("result: {:s}".format(s1))

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

先练成一个字符串然后通过set和list来解决问题

s = ''.join(input().split())
cnt = set()
idx = list()
for i in range(0, len(s)):
    old = len(cnt)
    if str.isalpha(s[i]):
        cnt.add(s[i].lower())
    new = len(cnt)
    if old != new:
        idx.append(s[i])
        if len(cnt) == 10:
            print(*idx, sep="")
            exit()
print("not found")

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

t = int(input())
maxlen = 0
maxstr = ""
for i in range(0, t):
    s = input()
    if maxlen < len(s):
        maxlen = len(s)
        maxstr = s
print('The longest is: {:s}'.format(maxstr))

第3章-20 逆序的三位数

s = input()
s = s[::-1]
s = int(s)
print(s)

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

s1 = input()
s2 = s1[::-1]
if s1 == s2:
    print(s1)
    print("Yes")
else:
    print(s1)
    print("No")

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

s1 = list(input())
s2 = ""
cnt = 0
for i in s1:
    if i.isupper() and i not in s2:
        s2 += i
        cnt += 1
if cnt == 0:
    print("Not Found")
else:
    print(s2)

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

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

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

for else 用法

m, n = input().split()
res = 0
cnt = 0
m, n = int(m), int(n)
if m <= 2:
    m = 2
for i in range(m, n + 1):
    for j in range(2, i):
        if i % j == 0:
            break
    else:
        res += i
        cnt += 1
print("{:d} {:d}".format(cnt, res))

第4章-3 猴子吃桃问题

n = int(input())
res = 1
for i in range(1, n):
    res = (res + 1) * 2
print(res)

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

import math


def isprime(n):
    if n <= 1:
        return False
    for i in range(2, int(math.sqrt(n) + 1)):
        if n % i == 0:
            return False
    return True


x = int(input())
for j in range(2, x // 2 + 1):
    z = x - j
    if isprime(z) == 1 and isprime(j) == 1:
        print("{:d} = {:d} + {:d}".format(x, j, z))
        break

第4章-5 求e的近似值

a = 1
tot = 1
n = int(input())
for i in range(1, n + 1):
    a *= i
    t = 1 / a
    tot += t
print("{:.8f}".format(tot))

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

def fib(n):
    a, b = 0, 1
    for i in range(n + 1):
        a, b = b, a + b
    return a

n = int(input())

if n < 1:
    print("Invalid.")
else:
    for i in range(0, n):
        print("{:11d}".format(fib(i)), end="")
        if (i + 1) % 5 == 0:
            print("")

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

n = int(input())
if n == 0:
    print('average = 0.0')
    print('count = 0')
    exit(0)
lst = list(map(int, input().split()))
count = 0
ave = sum(lst) / n
for i in lst:
    if i >= 60:
        count = count + 1
print('average = {:.1f}'.format(ave))
print('count = {:d}'.format(count))

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

a, b = 1, 2
n = int(input())
res = 0
for i in range(n):
    res += b / a
    a, b = b, a + b
print('{:.2f}'.format(res))

第4章-9 查询水果价格

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

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

注意使用两个//

def gcd(a, b):
    if b == 0:
        return a
    return gcd(b, a % b)


xa, xb = input().split()
xa, xb = int(xa), int(xb)
print('{:d} {:d}'.format(gcd(xa, xb), xa * xb // gcd(xa, xb)))

第4章-11 判断素数

import math


def isprime(x):
    #x = int(x)
    for i in range(2, int(math.sqrt(x)) + 1):
        if x % i == 0:
            return False
    if x == 1:
        return False
    return True


t = int(input())
cnt = 0
while cnt < t:
    cnt += 1
    n = int(input())
    if isprime(n):
        print('Yes')
    else:
        print('No')

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

n = int(input())
a, b = 1, 1
while a < n:
    a, b = b, a + b
print(a)

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

eps = float(input())
fac = 1.0
pre1, pre2 = 1.0, 2.0
t = 1.0
while pre2 - pre1 >= eps:
    t += 1.0
    fac = fac * t
    pre1, pre2 = pre2, pre2 + 1.0 / fac
print('{:.6f}'.format(pre2))

第4章-14 统计字符

letter = blank = digit = other = 0
st = input()
while True:
    for i in st:
        if i.isdigit():
            digit += 1
        elif i.isalpha():
            letter += 1
        elif i.isspace():
            blank += 1
        else:
            other += 1
    if letter + digit + other + blank >= 10:
        break
    st = input()
    blank += 1
print("letter = {:d}, blank = {:d}, digit = {:d}, other = {:d}".format(letter, blank, digit, other))

第4章-15 换硬币

x = int(input())
cnt = 0
for i in range(int(x / 5) + 1, 0, -1):
    for j in range(int(x / 2) + 1, 0, -1):
        for k in range(int(x) + 1, 0, -1):
            if 5 * i + 2 * j + k == x:
                cnt += 1
                print('fen5:{:d}, fen2:{:d}, fen1:{:d}, total:{:d}'.format(i, j, k, i + j + k))
print('count = %d' % cnt)

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

a, b, c = input().split()
a, b, c = int(a), int(b), int(c)
if a + b <= c or a + c <= b or b + c <= a:
    print('no')
else:
    print('yes')

第4章-17 水仙花数

import math
n = int(input())
for i in range(int(math.pow(10, n - 1)), int(math.pow(10, n))):
    tot = 0
    j = i
    while j:
        tot += math.pow(j % 10, n)
        j //= 10
    if tot == i:
        print('%d' % tot)

第4章-18 猴子选大王

n = int(input())
monkey = []
cnt = 0
t = 0
for i in range(1, n + 1):
    monkey.append(i)
while len(monkey) > 1:
    t += 1
    cnt += 1
    if cnt > len(monkey):
        cnt = 1
    if t == 3:
        t = 0
        monkey.pop(cnt - 1)
        cnt -= 1
print(monkey[0])

第4章-19 矩阵运算

方法:建立二维数组

建立二维数组,然后根据特点去加判断然后求和

n = int(input())
a = []
tot = 0
for i in range(n):
    s = input()
    a.append([int(n) for n in s.split()])
for j in range(n):
    for k in range(n):
        if j != n - 1 and k != n - 1 and j + k != n - 1:
            tot += a[j][k]
print(tot)

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

n, m = input().split()
n, m = int(n), int(m)
a = []
for i in range(n):
    s = input()
    a.append([int(n) for n in s.split()])
for j in range(n):
    tot = 0
    for k in range(m):
        tot += a[j][k]
    print(tot)

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

T = int(input())
cnt = 0
while cnt < T:
    a = []
    flag = False
    cnt += 1
    n = int(input())
    for i in range(n):
        s = input()
        a.append([int(t) for t in s.split()])
    for j in range(n):
        for k in range(n):
            if j > k:
                if a[j][k] != 0:
                    flag = True
                    break
        if flag:
            break
    if flag:
        print('NO')
    else:
        print('YES')

第4章-22 找鞍点

n = int(input())
a = []
for i in range(n):
    s = input()
    a.append([int(t) for t in s.split()])
for j in range(n):
    for k in range(n):
        cnt = 0
        for k1 in range(n):
            if a[j][k] >= a[j][k1]:
                cnt += 1
        if cnt == n:
            cnt = 0
            for m in range(n):
                if a[j][k] <= a[m][k]:
                    cnt += 1
            if cnt == n:
                print('{:d} {:d}'.format(j, k))
                exit(0)
print('NONE')

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

n, m = input().split()
n, m = int(n), int(m)
a = []
for i in range(n):
    s = input()
    a.append([int(t) for t in s.split()])
flag = False
for i in range(1, n - 1):
    for j in range(1, m - 1):
        if a[i][j] > a[i - 1][j] and a[i][j] > a[i][j - 1] and a[i][j] > a[i][j + 1] and a[i][j] > a[i + 1][j]:
            print('{:d} {:d} {:d}'.format(a[i][j], i + 1, j + 1))
            flag = True
if not flag:
    print('None {:d} {:d}'.format(n, m))

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

n = int(input())
for i in range(1, n + 1):
    for j in range(1, i + 1):
        print('{:d}*{:d}={:<4d}'.format(j, i, i * j), end='')
    print('')

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

函数:输出对应的ascii:ord()

函数:实现ascii转字符:t = chr(65)

n = int(input())
idx = 65
cnt = 0
for i in range(n, 0, -1):
    for j in range(i, 0, - 1):
        print(chr(idx + cnt), end=' ')
        cnt += 1
    print('')

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

n = int(input())
res = 0
for i in range(1, n + 1, 2):
    t = 1
    for j in range(1, i + 1):
        t *= j
    res += t
print('n={:d},s={:d}'.format(n, res))

第4章-27 二维数组中每行最大值和每行和

a = list(map(int, input().split()))
b = []
c = []
d = []
for i in range(0, 3):
    b.append(a[i])
for i in range(3, 6):
    c.append(a[i])
for i in range(6, 9):
    d.append(a[i])
for i in b:
    print('{:>4d}'.format(i), end='')
print('{:>4d}{:>4d}'.format(max(b), sum(b)))
for i in c:
    print('{:>4d}'.format(i), end='')
print('{:>4d}{:>4d}'.format(max(c), sum(c)))
for i in d:
    print('{:>4d}'.format(i), end='')
print('{:>4d}{:>4d}'.format(max(d), sum(d)))

第4章-28 矩阵转置

a = list(map(int, input().split()))
for i in range(0, 9, 3):
    print('{:>4d}'.format(a[i]), end='')
print('')
for i in range(1, 9, 3):
    print('{:>4d}'.format(a[i]), end='')
print('')
for i in range(2, 9, 3):
    print('{:>4d}'.format(a[i]), end='')

第4章-29 找出不是两个数组共有的元素

a = list(map(int, input().split()))
b = list(map(int, input().split()))
c = []
for i in range(1, a[0] + 1):
    for j in range(1, b[0] + 1):
        if a[i] == b[j]:
                c.append(a[i])
d = []
for i in range(1, a[0] + 1):
    if a[i] not in c and a[i] not in d:
        d.append(a[i])
for i in range(1, b[0] + 1):
    if b[i] not in c and b[i] not in d:
        d.append(b[i])
print(*d)

第4章-30 找完数

import math
m, n = input().split()
m, n = int(m), int(n)
flag = False
for i in range(m, n + 1):
    fac = [1]
    #fac = list()
    #fac.append(1)
    for j in range(2, int(math.sqrt(i) + 1)):
        if i % j == 0:
            fac.append(j)
            if j * j != i:
                fac.append(i // j)
    #print(*fac)
    if sum(fac) == i:
        flag = True
        fac.sort()
        print('{:d} = 1'.format(i), end='')
        for k in range(1, len(fac)):
            print(' + {:d}'.format(fac[k]), end='')
        print('')
if not flag:
    print('None')

第5章-1 输出星期名缩写

days = {1: 'Mon', 2: 'Tue', 3: 'Wed', 4: 'Thu', 5: 'Fri', 6: 'Sat', 7: 'Sun'}
n = int(input())
print(days[n])

第5章-2 图的字典表示

n = int(input())
num = 0
tot = 0
for i in range(n):
    dic = eval(input())
    #print(dic)
    for j in dic:
        t = dic[j]
        #print(t)
        for k in t:
            num += 1
            tot += t[k]
print('{:d} {:d} {:d}'.format(n, num, tot))

第5章-3 四则运算(用字典实现)

res = {'+': 'x+y', '-': 'x-y', '*': 'x*y', '/': "x/y if y!=0  else 'divided by zero'"}
x = int(input())
operator = input()
y = int(input())
r = eval(res[operator])
if type(r) != str:
    print(format(r, '.2f'))
else:
    print(r)

第5章-4 分析活动投票情况

str1 = set(input().split(','))
lst = []
for i in range(5, 11):
    if str(i) not in str1:
        lst.append(str(i))
print(*lst)

第5章-5 统计字符出现次数

str1 = input()
str2 = input()
cnt = 0
for i in str1:
    if i == str2:
        cnt += 1
print(cnt)

第5章-6 统计工龄

n = int(input())
lst = list(map(int, input().split()))
d = {}
for i in range(0, n):
    if not lst[i] in d:
        d[lst[i]] = 1
    else:
        d[lst[i]] += 1
for j in sorted(d.keys()):
    print(j, end=':')
    print(d[j])

第5章-7 列表去重

lst = eval(input())
lst1 = list(set(lst))
lst1.sort(key=lst.index)
print(*lst1)

第5章-8 能被3,5和7整除的数的个数(用集合实现)

m, n = input().split()
m, n = int(m), int(n)
set3 = set()
set5 = set()
set7 = set()
res = set()
for i in range(m, n + 1):
    if i % 3 == 0:
        set3.add(i)
    if i % 5 == 0:
        set5.add(i)
    if i % 7 == 0:
        set7.add(i)
res = set3 & set5 & set7
print(len(res))

第5章-9 求矩阵鞍点的个数

n = int(input())
a = []
for i in range(n):
    s = input()
    a.append([int(t) for t in s.split()])
res = 0
for j in range(n):
    for k in range(n):
        cnt = 0
        for k1 in range(n):
            if a[j][k] >= a[j][k1]:
                cnt += 1
        if cnt == n:
            cnt = 0
            for m in range(n):
                if a[j][k] <= a[m][k]:
                    cnt += 1
            if cnt == n:
                res += 1
print(res)

第5章-10 两数之和

lst = list(map(int, input().split(',')))
n = int(input())
d = {}
for i in lst:
    d[i] = n - i
for key, val in d.items():
    if key in lst and val in lst:
        print(lst.index(key), lst.index(val))
        break
else:
    print('no answer')

第5章-11 字典合并

a = dict(eval(input()))
b = dict(eval(input()))
for i in b.keys():
    a[i] = a.get(i, 0) + b[i]
t = list(a.items())
t.sort(key=lambda x: ord(x[0]) if type(x[0]) == str else x[0])
c = str(dict(t)).replace(' ', '').replace("'", '"')
print(c)

第6章-1 输入列表,求列表元素和(eval输入应用)

lst = list(eval(input()))
print(sum(lst))

第6章-2 一帮一

n = int(input())
lst1 = []
lst2 = []
lst3 = []
for i in range(n):
    t = input().split()
    lst3.append(t[1])
    if t[0] == '0':
        lst1.append(t[1])
    else:
        lst2.append(t[1])
for i in range(int(n / 2)):
    if lst3[i] in lst1:
        j = lst1.index(lst3[i])
        print(lst3[i] + ' ' + lst2[-(j + 1)])
    else:
        j = lst2.index(lst3[i])
        print(lst3[i] + ' ' + lst1[-(j + 1)])

第6章-3 列表或元组的数字元素求和

str1 = input().replace('(', '').replace(')', '').replace('[', '').replace(']', '').split(',')
tot = 0
for i in str1:
    if '"' not in i:
        tot += int(i)
print(tot)

第6章-4 列表数字元素加权和(1)

str1 = input()
str2 = str1.replace('[', '').replace(']', '')
lst = str2.split(',')
lst = [int(t) for t in lst]
res = 0
n = 0
cnt = 0
for i in range(len(str1)):
    if str1[i] == '[':
        n += 1
    elif str1[i] == ']':
        n -= 1
    elif str1[i] == ',':
        continue
    elif str1[i + 1] == ',' or str1[i + 1] == ']':
        res += lst[cnt] * n
        cnt += 1
print(res)

第6章-5 列表元素个数的加权和(1)

str1 = input()
str2 = str1.replace('[', '').replace(']', '')
lst = str2.split(',')
lst = [int(t) for t in lst]
res = 0
n = 0
for i in range(len(str1)):
    if str1[i] == '[':
        n += 1
    elif str1[i] == ']':
        n -= 1
    elif str1[i] == ',':
        continue
    elif str1[i + 1] == ',' or str1[i + 1] == ']':
        res += n
print(res)

第6章-6 求指定层的元素个数

str1 = input()
k = int(input())
str2 = str1.replace('[', '').replace(']', '')
lst = str2.split(',')
lst = [int(t) for t in lst]
res = 0
n = 0
for i in range(len(str1)):
    if str1[i] == '[':
        n += 1
    elif str1[i] == ']':
        n -= 1
    elif str1[i] == ',':
        continue
    elif (str1[i + 1] == ',' or str1[i + 1] == ']') and n == k:
        res += 1
print(res)

第6章-7 找出总分最高的学生

n = int(input())
ans = []
for i in range(0, n):
    t = list(map(str, input().split()))
    Student = dict()
    Student['id'] = t[0]
    Student['name'] = t[1]
    Student['s1'] = int(t[2])
    Student['s2'] = int(t[3])
    Student['s3'] = int(t[4])
    Student['tot'] = int(t[2]) + int(t[3]) + int(t[4])
    ans.append(Student)
ans.sort(key=lambda x: x['tot'], reverse=True)
#print(ans[0])
print('{:s} {:s} {:d}'.format(ans[0]['name'], ans[0]['id'], ans[0]['tot']))
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值