1. 

创建一个函数,该函数返回两个战斗机之间的战斗中获胜者的名字。

每个战斗机轮流攻击对方,而首先杀死对方的人是胜利的。死亡被定义为具有health <= 0

每个战斗机将是一个Fighter对象/实例。请以您选择的语言查看下面的Fighter类。

这两个healthdamagePerAttackdamage_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