'''
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()