Python基础练习100题 ( 31

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

    刷题继续

    昨天和大家分享了21-30题,今天继续来刷31~40题

    Question 31:

    Define a function which can print a dictionary where the keys are numbers between 1 and 20 (both included) and the values are square of keys.

    解法一

    def printDict():
        d=dict()
        for i in range(1,21):
            d[i]=i**2
        print(d)    
    printDict()

    解法二

    def printDict():
        dict={i:i**2 for i in range(1,21)}   
        print(dict)
    printDict()

    Question 32:

    Define a function which can generate a dictionary where the keys are numbers between 1 and 20 (both included) and the values are square of keys. The function should just print the keys only.

    解法一

    def printDict():
        dict = {i: i**2 for i in range(1, 21)}
        print(dict.keys())      
    printDict()
    

    解法二

    def printDict():
        d=dict()
        for i in range(1,21):
            d[i]=i**2
        for k in d.keys():    
            print(k)
    printDict()

    Question 33:

    Define a function which can generate and print a list where the values are square of numbers between 1 and 20 (both included).

    解法一

    def printList():
        lst = [i ** 2 for i in range(1, 21)]
        print(lst)
    printList()

    Question 34:

    Define a function which can generate a list where the values are square of numbers between 1 and 20 (both included). Then the function needs to print the first 5 elements in the list.

    解法一

    def printList():
        lst = [i ** 2 for i in range(1, 21)]
        print(lst[:5])
    
    printList()

    Question 35:

    Define a function which can generate a list where the values are square of numbers between 1 and 20 (both included). Then the function needs to print the last 5 elements in the list.

    解法一

    def printList():
        lst = [i ** 2 for i in range(1, 21)]
        print(lst[-5:])
    printList()

    Question 36:

    Define a function which can generate a list where the values are square of numbers between 1 and 20 (both included). Then the function needs to print all values except the first 5 elements in the list.

    解法一

    def printList():
        lst = [i ** 2 for i in range(1, 21)]
        print(lst[5:])
        
    printList()

    Question 37:

    Define a function which can generate and print a tuple where the value are square of numbers between 1 and 20 (both included).

    解法一

    def printTuple():
        lst = [i ** 2 for i in range(1, 21)]
        print(tuple(lst))
    
    printTuple()

    Question 38:

    With a given tuple (1,2,3,4,5,6,7,8,9,10), write a program to print the first half values in one line and the last half values in one line.

    解法一

    tpl = (1,2,3,4,5,6,7,8,9,10)
    
    for i in range(0,5):
        print(tpl[i],end = ' ')
    print()
    for i in range(5,10):
        print(tpl[i],end = ' ')
        

    解法二

    tp = tuple(i for i in range(1,11))
    lst1,lst2 = list(tp[:5]),list(tp[5:])
    print(lst1)
    print(lst2)

    Question 39:

    Write a program to generate and print another tuple whose values are even numbers in the given tuple (1,2,3,4,5,6,7,8,9,10).

    解法一

    tpl = (1,2,3,4,5,6,7,8,9,10)
    tpl_even = tuple(i for i in tpl if i%2 == 0)
    print(tpl_even)

    解法二

    tpl = (1,2,3,4,5,6,7,8,9,10)
    tpl_even= tuple(filter(lambda x : x%2==0,tpl))  
    print(tpl_even)

    Question 40:

    Write a program which accepts a string as input to print "Yes" if the string is "yes" or "YES" or "Yes", otherwise print "No".

    解法一

    s = input()
    if s.lower() == 'yes': 
        print('Yes')
    else:
        print("No")

    源代码下载

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

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

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

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

关键字