Python基礎練習100題 ( 91~ 100)

刷題繼續

昨天和你們分享了81-90題,今天繼續來刷最後的91-100題git

Question 91:

Please write a program which accepts a string from console and print it in reverse order.

**Example:
If the following string is given as input to the program:*github

rise to vote sir
Then, the output of the program should be:
ris etov ot esir

解法一

s = input()
s = ''.join(reversed(s))
print(s)

解法二

s=input()
s = s[::-1]
print(s)

Question 92:

Please write a program which accepts a string from console and print the characters that have even indexes.

*Example:
If the following string is given as input to the program:*api

H1e2l3l4o5w6o7r8l9d
Then, the output of the program should be:
Helloworld

解法一

s=input()
print(s[::2])

解法二

s = "H1e2l3l4o5w6o7r8l9d"
s = [ v for (i,v) in enumerate(s) if i%2 ==0 ]
print(''.join(s))

Question 93:

Please write a program which prints all permutations of [1,2,3]

解法一

import itertools
result = list(itertools.permutations([1,2,3]))
print(result)

Question 94:

*Write a program to solve a classic ancient Chinese puzzle:
We count 35 heads and 94 legs among the chickens and rabbits in a farm. How many rabbits and how many chickens do we have? * (雞兔同籠)

解法一

def solve(numheads,numlegs):
    ns='No solutions!'
    for i in range(numheads+1):
        j=numheads-i
        if 2*i+4*j==numlegs:
            return i,j
    return ns,ns

numheads=35
numlegs=94
solutions=solve(numheads,numlegs)
print(solutions)

Question 95:

Given the participants' score sheet for your University Sports Day, you are required to find the runner-up score. You are given scores. Store them in a list and find the score of the runner-up.app

If the following string is given as input to the program:學習

5
2 3 6 6 5

Then, the output of the program should be:ui

5

解法一

n = int(input())
arr = map(int, input().split())
arr = list(set(arr))
arr.sort()
print(arr[-2])

解法二

n = int(input())
arr = map(int, input().split())
arr = list(set(arr))
print(sorted(arr)[-2])

Question 96:

*You are given a string S and width W.
Your task is to wrap the string into a paragraph of width.*spa

If the following string is given as input to the program:code

ABCDEFGHIJKLIMNOQRSTUVWXYZ
4

Then, the output of the program should be:orm

ABCD
EFGH
IJKL
IMNO
QRST
UVWX
YZ

解法一

import textwrap

def wrap(string, max_width):
    string = textwrap.wrap(string,max_width)
    string = "\n".join(string)
    return string

if __name__ == '__main__':
    string, max_width = input(), int(input())
    result = wrap(string, max_width)
    print(result)

解法二

import itertools as it

def grouper(lst, n, fillvalue=None):
    iters = [iter(lst)] * n
    return it.zip_longest(*iters, fillvalue=fillvalue)  #  默認就是None
string, max_width = input(), int(input())
result = grouper(string, max_width)
print(list(result))

Question 97:

You are given an integer, N. Your task is to print an alphabet rangoli of size N. (Rangoli is a form of Indian folk art based on creation of patterns.)ip

Different sizes of alphabet rangoli are shown below:

#size 3

----c----
--c-b-c--
c-b-a-b-c
--c-b-c--
----c----

#size 5

--------e--------
------e-d-e------
----e-d-c-d-e----
--e-d-c-b-c-d-e--
e-d-c-b-a-b-c-d-e
--e-d-c-b-c-d-e--
----e-d-c-d-e----
------e-d-e------
--------e--------

解法一

import string
def print_rangoli(size):
    n = size
    alph = string.ascii_lowercase
    width = 4 * n - 3

    ans = []
    for i in range(n):
        left = '-'.join(alph[n - i - 1:n])
        mid = left[-1:0:-1] + left
        final = mid.center(width, '-')
        ans.append(final)

    if len(ans) > 1:
        for i in ans[n - 2::-1]:
            ans.append(i)
    ans = '\n'.join(ans)
    print(ans)

if __name__ == '__main__':
    n = int(input())
    print_rangoli(n)

Question 98:

You are given a date. Your task is to find what the day is on that date.

Input

A single line of input containing the space separated month, day and year, respectively, in MM DD YYYY format.

08 05 2015

Output

Output the correct day in capital letters.

WEDNESDAY

解法一

import calendar

month, day, year = map(int, input().split())

dayId = calendar.weekday(year, month, day)
print(calendar.day_name[dayId].upper())

解法二

import datetime
month, day, year = map(int, input().split())
dayId = datetime.date(year, month, day)
print(dayId.strftime("%A"))

Question 99:

Given 2 sets of integers, M and N, print their symmetric difference in ascending order. The term symmetric difference indicates those values that exist in either M or N but do not exist in both.

Input

The first line of input contains an integer, M.The second line contains M space-separated integers.The third line contains an integer, N.The fourth line contains N space-separated integers.

4
2 4 5 9
4
2 4 11 12

Output

Output the symmetric difference integers in ascending order, one per line.

5
9
11
12

解法一

if __name__ == '__main__':
    n = int(input())
    set1 = set(map(int,input().split()))

    m = int(input())
    set2 = set(map(int, input().split()))

    ans = list(set1 ^ set2)
    print(sorted(ans))

Question 100:

You are given words. Some words may repeat. For each word, output its number of occurrences. The output order should correspond with the input order of appearance of the word. See the sample input/output for clarification.

If the following string is given as input to the program:

4
bcdef
abcdefg
bcde
bcdef

Then, the output of the program should be:

3
2 1 1

解法一

n = int(input())

word_list = []
word_dict = {}

for i in range(n):
    word = input()
    if word not in word_dict:
        word_list.append(word)
    word_dict[word] = word_dict.get(word, 0) + 1

print(len(word_list))
for word in word_list:
    print(word_dict[word], end=' ')

源代碼下載

這十道題的代碼在個人github上,若是你們想看一下每道題的輸出結果,能夠點擊如下連接下載:

個人運行環境Python 3.6+,若是你用的是Python 2.7版本,絕大多數不一樣就體如今如下3點:

  • raw_input()在Python3中是input()
  • print須要加括號
  • fstring能夠換成.format(),或者%s,%d

到今天爲止,這套題就已經所有結束了,相信你們若是看了每一道題,仍是對技能提高有些許幫助的!

若是你有更好的Python學習資料,想要分享或者交流,歡迎給我留言哈!

獨樂樂不如衆樂樂,你們一塊兒進步,謝謝!

相關文章
相關標籤/搜索