Python基础练习100题 ( 71

发布时间:2019-09-28 08:38:10编辑:auto阅读(1774)

    刷题继续

    昨天和大家分享了61-70题,今天继续来刷71~80题

    Question 71:

    Please write a program to output a random number, which is divisible by 5 and 7, between 10 and 150 inclusive using random module and list comprehension.

    解法一

    import random
    print (random.choice([i for i in range(10,151) if i%5==0 and i%7==0]))

    解法二

    import random
    resp = [i for i in range(10,151) if i % 35 == 0 ]
    print(random.choice(resp))

    Question 72:

    Please write a program to generate a list with 5 random numbers between 100 and 200 inclusive.

    解法一

    import random
    resp = random.sample(range(100,201),5)
    print(resp)

    Question 73:

    Please write a program to randomly generate a list with 5 even numbers between 100 and 200 inclusive.

    解法一

    import random
    numbers = random.sample(range(100,201,2),5)
    print(numbers)

    解法二

    import random
    print (random.sample([i for i in range(100,201) if i%2==0], 5))
    

    Question 74:

    Please write a program to randomly generate a list with 5 numbers, which are divisible by 5 and 7 , between 1 and 1000 inclusive.

    解法一

    import random
    lst = [i for i in range(1,1001) if i%35 == 0]
    resp = random.sample(lst,5)
    print(resp)

    Question 75:

    Please write a program to randomly print a integer number between 7 and 15 inclusive.

    解法一

    import random
    number= random.choice([x for x in range(7,16)])
    print(number)

    解法二

    import random
    print(random.randrange(7,16))

    Question 76:

    Please write a program to compress and decompress the string "hello world!hello world!hello world!hello world!".

    解法一

    import zlib
    s = 'hello world!hello world!hello world!hello world!'.encode()
    t = zlib.compress(s)
    print(t)
    print(zlib.decompress(t))

    Question 77:

    Please write a program to print the running time of execution of "1+1" for 100 times.

    解法一

    from timeit import Timer
    t = Timer("for i in range(100):1+1")
    t.timeit()

    解法二

    import time
    before = time.time()
    for i in range(100):
        x = 1 + 1
    after = time.time()
    execution_time = after - before
    print(execution_time)

    Question 78:

    Please write a program to shuffle and print the list [3,6,7,8].

    解法一

    import  random  
    lst  =  [3,6,7,8]  
    random.shuffle(lst)  
    print(lst) 

    解法二

    import random
    lst = [3,6,7,8]
    seed = 7
    random.Random(seed).shuffle(lst)
    print(lst)
    

    Question 79:

    Please write a program to generate all sentences where subject is in ["I", "You"] and verb is in ["Play", "Love"] and the object is in ["Hockey","Football"].

    解法一

    subjects=["I", "You"]
    verbs=["Play", "Love"]
    objects=["Hockey","Football"]
    
    res = [[i, j, k] for i in subjects  
                     for j in verbs 
                     for k in objects] 
    for x in res:
        print(" ".join(x))
    
    Out:
      
        I Play Hockey 
        I Play Football 
        I Love Hockey 
        I Love Football 
        You Play Hockey 
        You Play Football 
        You Love Hockey 
        You Love Football

    解法二

    
    subjects=["I", "You"]
    verbs=["Play", "Love"]
    objects=["Hockey","Football"]
    
    for sub in subjects:
        for verb in verbs:
            for obj in objects:
                print("{}  {}  {}".format(sub,verb,obj))
    Out:
        I Play Hockey 
        I Play Football 
        I Love Hockey 
        I Love Football 
        You Play Hockey 
        You Play Football 
        You Love Hockey 
        You Love Football
    

    解法三

    
    import itertools 
    
    subjects=["I", "You"]
    verbs=["Play", "Love"]
    objects=["Hockey","Football"]
    all_list = [subjects,verbs,objects]
    
    res = list(itertools.product(*all_list)) 
    for x in res:
        print(" ".join(x))
    
    Out:
        I Play Hockey 
        I Play Football 
        I Love Hockey 
        I Love Football 
        You Play Hockey 
        You Play Football 
        You Love Hockey 
        You Love Football

    Question 80:

    Please write a program to print the list after removing even numbers in [5,6,77,45,22,12,24].

    解法一

    def isEven(n):
        return n%2!=0
    
    li = [5,6,77,45,22,12,24]
    lst = list(filter(isEven,li))
    print(lst)

    解法二

    li  =  [5,6,77,45,22,12,24]  lst  =  list(filter(lambda  n:n%2!=0,li))  
    print(lst)

    源代码下载

    这十道题的代码在我的github上,如果大家想看一下每道题的输出结果,可以点击以下链接下载:

    我的运行环境Python 3.6+,如果你用的是Python 2.7版本,绝大多数不同就体现在以下3点:

    • raw_input()在Python3中是input()
    • print需要加括号
    • fstring可以换成.format(),或者%s,%d

    谢谢大家,我们下期见!希望各位朋友不要吝啬,把每道题的更高效的解法写在评论里,我们一起进步!!!

关键字