python考试编程大题复现

'''
1.考试时没有按照实现按照英文字母表的顺序输出,
当时想当然地认为字典会根据哈希值自动排序,但跑了一下代码后发现并不是这样的,还需要手动实现
'''
s = "ASDFLJAASFDJKLOFJDSLADKFJFJKSDLBBBBBWWWWW"
dic = {}
lst = []
lst2 = []
for i in s:
    dic[i] = s.count(i)

for value in dic.values():
    lst.append(value)

m = max(lst)
for key in dic:
    if dic[key] == m:
        lst2.append(key)

l = sorted(lst2)
for i in l:
    print(i)
'''
2.不出意外的话,下面的就是我考试是写在试卷上的,我觉得没问题,但跑跑发现代码报错了,但我又不知道错哪了???
'''
def cal_wei_sum(num):
    s = str(num)
    sum = 0
    l = [int(i) for i in s]
    for i in l:
        sum += i

    return sum


def paixu(lst):
    for i in lst:
        for j in lst[i+1:]:
            if cal_wei_sum(i) != cal_wei_sum(j):
                lst[lst.index(i)], lst[lst.index(j)] = lst[lst.index(j)], lst[lst.index(i)]
            else:
                if i > j:
                    i, j = j, i

n = int(input('输入n:'))
m = int(input('输入m:'))
lst = [i for i in range(1, n+1)]
l = sorted(lst, key=paixu)
print(l[m-1])
'''
3.这道题能拿满分———— KO !!!
'''
import random

def generate_ipv4():
    a = str(random.randint(0, 255))
    b = str(random.randint(0, 255))
    c = str(random.randint(0, 255))
    d = str(random.randint(0, 255))
    s = a + '.' + b + '.' + c + '.' + d
    return s

def write_to_file(lst):
    for i in lst:
        with open('ipv4.txt', mode='a', encoding='utf-8') as f:
            f.write(i)
            f.write('\n')  # 考虑到是考试,所以我考试卷子上没写这个,这里这样写是为了便于查看测试结果

lst = []
for i in range(100):
    s = generate_ipv4()
    lst.append(s)
write_to_file(lst)
'''
4.
'''
# 我写的,错了,正确做法:把子类的__init__()方法去掉,并且对应属性前写的self.也要去掉
class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def info(self):
        print(f"{self.name},{self.age}岁")


class Student(Person):
    def __init__(self):
        self.student_id = 2024001
        self.english_score = 80
        self.math_score = 90
        self.chinese_score = 85

    def calculate_total_score(self):
        sum = self.math_score + self.english_score + self.chinese_score
        return sum

    def calculate_avg_score(self):
        sum = self.math_score + self.english_score + self.chinese_score
        return sum / 3

    def print_student_info(self):
        print(f"姓名:{self.name}")
        print(f"年龄:{self.age}")
        print(f"英语:{self.english_score}")
        print(f"数学:{self.math_score}")
        print(f"语文:{self.chinese_score}")
        print(f"总分:{self.calculate_total_score()}")
        print("平均分:%.1f" % self.calculate_avg_score())


student = Student('张三', 18)
student.print_student_info()

 

# 正确版本
class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def info(self):
        print(f"{self.name},{self.age}岁")


class Student(Person):
    student_id = 2024001
    english_score = 80
    math_score = 90
    chinese_score = 85

    def calculate_total_score(self):
        sum = self.math_score + self.english_score + self.chinese_score
        return sum

    def calculate_avg_score(self):
        sum = self.math_score + self.english_score + self.chinese_score
        return sum / 3

    def print_student_info(self):
        print(f"姓名:{self.name}")
        print(f"年龄:{self.age}")
        print(f"英语:{self.english_score}")
        print(f"数学:{self.math_score}")
        print(f"语文:{self.chinese_score}")
        print(f"总分:{self.calculate_total_score()}")
        print("平均分:%.1f" % self.calculate_avg_score())


student = Student('张三', 18)
student.print_student_info()

 

 

 

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值