python入门题目四(ZZULIOJ函数和结构体练习)

个人练习

  • 函数
    • 1092: 素数表(函数专题)
    • 1096: 水仙花数(函数专题)
    • 1104: 求因子和(函数专题)
  • 结构体
    • 1182: 查询记录(结构体专题)
    • 1180: 成绩统计(结构体专题)

函数

1092: 素数表(函数专题)

代码:

import math
def pan(x):
    if x==1 or x==0:
        return 0
    else:
        for i in range(2,int(math.sqrt(x))+1):
            if x%i==0 :
                return 0
    return 1


if __name__ == '__main__':
    a,b=map(int,input().split())
    for i in range(a,b+1):
        if pan(i)==1:
            print(i,end=" ")

1096: 水仙花数(函数专题)

代码:

#
# 水仙花数(函数专题)
#

def narcissus(n):
    i = n // 100
    j = n % 100 // 10
    k = n % 10
    if i**3 + j**3 + k**3 == n:
        return 1
    else:
        return 0


while True:
    m, n = map(int, input().split())
    flag = 0
    for i in range(m, n + 1):
        #调用函数,判断水仙花数
        if narcissus(i) == 1:
            print(i, end = " ")
            flag = 1
    if flag == 0:
        print("no", end = "")
    print()

1104: 求因子和(函数专题)

代码:

def yinzi(n):
    sum = 0
    for i in range(1,n):
        if n % i == 0:
            sum = sum + i
    return sum

if __name__ == '__main__':
    n = int(input())
    print(yinzi(n))

结构体

资料链接:python结构体与结构体排序

1182: 查询记录(结构体专题)

代码:

class Stu:
    def __init__(self):
        self.name = ""
        self.stu = ""
        self.yu = 0
        self.shu = 0
        self.ying = 0
        self.sum = 0
def mycmp(a,b):
    if a.sum > b.sum :
        return -1
    else:
        return 1
if __name__ == '__main__':
    n = int(input())
    t = n
    str = ""
    str1 = ""
    y = 0
    s = 0
    yi = 0
    list1 = []
    for i in range(n):
        list1.append(Stu())
        list1[i].stu,list1[i].name,list1[i].yu,list1[i].shu,list1[i].ying = input().split()
        list1[i].sum = int(list1[i].yu)+int(list1[i].shu)+int(list1[i].ying)
    while True:
        try:
            str = input()
            f = 0
            for i in range(n):
                if list1[i].stu == str :
                    print(list1[i].stu,list1[i].name,list1[i].yu,list1[i].shu,list1[i].ying,end=" ")
                    f = 1
            if f==0 :
                print("Not Found")

        except:
            break

1180: 成绩统计(结构体专题)

代码:

from functools import cmp_to_key
class Stu:
    def __init__(self):
        self.name = ""
        self.stu = ""
        self.yu = 0
        self.shu = 0
        self.ying = 0
        self.sum = 0
def mycmp(a,b):
    if a.sum > b.sum :
        return -1
    else:
        return 1
if __name__ == '__main__':
    n = int(input())
    t = n
    str = ""
    str1 = ""
    y = 0
    s = 0
    yi = 0
    list1 = []
    for i in range(n):
        list1.append(Stu())
        list1[i].stu,list1[i].name,list1[i].yu,list1[i].shu,list1[i].ying = input().split()
        list1[i].sum = int(list1[i].yu)+int(list1[i].shu)+int(list1[i].ying)
    list1.sort(key=cmp_to_key(mycmp))
    print(list1[0].stu,list1[0].name,list1[0].yu,list1[0].shu,list1[0].ying,end=" ")

你可能感兴趣的:(python,开发语言,后端)