资讯专栏INFORMATION COLUMN

Python基础练习100题 ( 91~ 100)

Jrain / 2513人阅读

摘要:刷题继续昨天和大家分享了题,今天继续来刷最后的题解法一解法二解法一解法二解法一鸡兔同笼解法一解法一解法二解法一解法二默认就是

刷题继续

昨天和大家分享了81-90题,今天继续来刷最后的91-100题

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:*

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:*

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.

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:

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.*

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

ABCDEFGHIJKLIMNOQRSTUVWXYZ
4

Then, the output of the program should be:

ABCD
EFGH
IJKL
IMNO
QRST
UVWX
YZ
解法一
import textwrap

def wrap(string, max_width):
    string = textwrap.wrap(string,max_width)
    string = "
".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.)

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 = "
".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 91-100题

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

raw_input()在Python3中是input()

print需要加括号

fstring可以换成.format(),或者%s,%d

到今天为止,这套题就已经全部结束了,相信大家如果看了每一道题,还是对技能提升有些许帮助的!

如果你有更好的Python学习资料,想要分享或者交流,欢迎给我留言哈!

进入我的个人主页

独乐乐不如众乐乐,大家一起进步,谢谢!

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/44028.html

相关文章

  • Python基础练习100 ( 81~ 90)

    摘要:刷题继续昨天和大家分享了题,今天继续来刷题解法一解法一解法二解法一解法一解法一解法一解法二解法一解法二解法一解法二解法三解法一解法一解法二源代码下载这十道题的代码在我的上,如果大家想看一下每道题的输出结果,可以点击以下链接下载题我的运 刷题继续 昨天和大家分享了71-80题,今天继续来刷81~90题 Question 81: By using list comprehension, p...

    刘德刚 评论0 收藏0
  • Python基础练习100 ( 71~ 80)

    摘要:刷题继续昨天和大家分享了题,今天继续来刷题解法一解法二解法一解法一解法二解法一解法一解法二解法一解法一解法二解法一解法二解法一解法二解法三解法一解法二源代码下载这十道题的代码在我的上,如果大家想看一下每道题的输出结果,可以点击以下链接下 刷题继续 昨天和大家分享了61-70题,今天继续来刷71~80题 Question 71: Please write a program to out...

    Jeff 评论0 收藏0
  • Python基础练习100 ( 61~ 70)

    摘要:刷题继续昨天和大家分享了题,今天继续来刷题解法一解法一解法一解法一解法一解法一解法一解法一解法二解法一解法二解法一解法二源代码下载这十道题的代码在我的上,如果大家想看一下每道题的输出结果,可以点击以下链接下载题 刷题继续 昨天和大家分享了51-60题,今天继续来刷61~70题 Question 61: The Fibonacci Sequence is computed based o...

    jeyhan 评论0 收藏0
  • Python基础练习100 ( 51~ 60)

    摘要:刷题继续昨天和大家分享了题,今天继续来刷题解法一解法一解法一解法二解法一解法二解法一解法二解法三解法一解法一解法一解法一解法一源代码下载这十道题的代码在我的上,如果大家想看一下每道题的输出结果,可以点击以下链接下载 刷题继续 昨天和大家分享了41-50题,今天继续来刷51~60题 Question 51: Write a function to compute 5/0 and use ...

    岳光 评论0 收藏0
  • Python基础练习100 ( 31~ 40)

    摘要:刷题继续昨天和大家分享了题,今天继续来刷题解法一解法二解法一解法二解法一解法一解法一解法一解法一解法一解法二解法一解法二解法一源代码下载这十道题的代码在我的上,如果大家想看一下每道题的输出结果,可以点击以下链接下载题我的运行环境如果你 刷题继续 昨天和大家分享了21-30题,今天继续来刷31~40题 Question 31: Define a function which can pr...

    miracledan 评论0 收藏0

发表评论

0条评论

Jrain

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<