1.
创建一个函数,该函数返回两个战斗机之间的战斗中获胜者的名字。
每个战斗机轮流攻击对方,而首先杀死对方的人是胜利的。死亡被定义为具有health <= 0。
每个战斗机将是一个Fighter对象/实例。请以您选择的语言查看下面的Fighter类。
这两个health和damagePerAttack(damage_per_attack为Python)将整数大于0。您可以变异Fighter对象。
不会
class Fighter(object): def __init__(self, name, health, damage_per_attack): self.name = name self.health = health self.damage_per_attack = damage_per_attack # def __str__(self): # return "Fighter({}, {}, {})".format(self.name, self.health, self.damage_per_attack) # __repr__=__str__ def declare_winner(fighter1, fighter2, first_attacker): cur, opp = (fighter1, fighter2) if first_attacker == fighter1.name else (fighter2, fighter1) # cur 是先出手的人 while cur.health > 0: opp.health -= cur.damage_per_attack cur, opp = opp, cur return opp.name print(declare_winner(Fighter("Lew", 10, 2),Fighter("Harry", 5, 4), "Lew"))
2. 选出列表中唯一的数
mein:
def stray(arr): for i in arr: if arr.count(i) == 1: return i
key:
def stray(arr): return [x for x in set(arr) if arr.count(x) == 1][0] # return 后面好像没法直接加数字 def stray(arr): return min(arr, key=arr.count)
3. 字符是否末尾匹配 比如abcde 与cde (str.endswith())
mein: 感觉结果是正确的,但不知道哪里有问题
def solution(string, ending): return True if string[::-1].index(ending[::-1]) == 0 else False
key:
def solution(string, ending): return string.endswith(ending)
4.取出所有大于0数字,组成列表
mein
def filter_list(l): 'return a new list with the strings filtered out' return [i for i in l 6. if type(i) == int and i >= 0]
key: 差不多
5. 有12345678 8个数字,能组成互不相同且无重复数字的两位数
li = (1, 2, 3, 4, 5, 6, 7, 8) a = 0 for i in range(1,9): # 将li 用range(1,9) 替换更好 for b in range(1,9): if b != i: a = a + 1 c = i*10 + b print(c) print(a)
6. 输出99 乘法表
string = "" for j in range(1,10): for d in range(1,j+1): string = string + str(j) + "*" +str(d) + "=" + str(j*d) + "\t" print(string) string = "" # or for h in range(1, 10): for k in range(1, h+1): print(str(h) + "*" +str(k) + "=" + str(h*k) + '\t', end="") # print('\n', end='') # 如果没有end= '' 每行之间会间隔一行 print("") # 换行
7. 公鸡5元,母鸡3元。小鸡3只1元,用100元,且三种鸡都得有 买多少刚好凑足100
g = 5 m = 3 # 可以不用写这几个参数 直接带代到下面的式子里 x = 1/3 count = 0 for go in range(1, 100//g): for mu in range(1, 100//m): for xi in range(1, 100//x): total = g * go + mu * m + x * xi if total == 100: print(go, mu, xi) count += 1
浙公网安备 33010602011771号