100+Python挑战性编程练习系列 -- day 23

这篇具有很好参考价值的文章主要介绍了100+Python挑战性编程练习系列 -- day 23。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Question 92

根据参加者在大学运动会的成绩表,你必须找出亚军的分数。你会得到分数。将它们存储在列表中并查找亚军的分数。
如果将以下字符串作为程序的输入:
5
2 3 6 6 5
然后,程序的输出应该是:
5

方法1:

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

方法2:

num = int(input())
scores = list(map(int, input().split(' ')))
winner = max(scores)
lst = []

if len(scores) != num:
    print('length of score is greater than input given')
else:
    for score in scores:
	if winner > score:
	    lst.append(score)

runnerup = max(lst)
print(runnerup)

Question 93

给定字符串S和宽度W。你的任务是将字符串包装成一段宽度。
如果将以下字符串作为程序的输入:
ABCDEFGHIJKLIMNOQRSTUVWXYZ
4
然后,程序的输出应该是:
ABCD
EFGH
IJKL
IMNO
QRST
UVWX
YZ

方法1:

import textwrap

string = input()
width = int(input())

print(textwrap.fill(string,width))

方法2:

import itertools
string = input("> ")
width_length = int(input("What is the width of the groupings? "))

def grouper(string, width):
    iters = [iter(string)] * width
    return itertools.zip_longest(*iters, fillvalue='')

def displayer(groups):
    for x in groups:
        if x == '':
            continue
        else:
            print(''.join(x))

displayer(grouper(string, width_length))

Question 94

给你一个整数N。你的任务是打印一个字母大小为N的rangoli。(Rangoli是一种基于图案创作的印度民间艺术形式。
不同大小的字母rangoli如下所示:
#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--------

方法1:

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)

方法2:

def rangoli(n):
    # your code goes here
    l1=list(map(chr,range(97,123)))
    x=l1[n-1::-1]+l1[1:n]
    mid=len('-'.join(x))
    for i in range(1,n):
        print('-'.join(l1[n-1:n-i:-1]+l1[n-i:n]).center(mid,'-'))
    for i in range(n,0,-1):
        print('-'.join(l1[n-1:n-i:-1]+l1[n-i:n]).center(mid,'-')) 
rangoli(5)

Question 95

你有一个日期。你的任务是找出那天是什么日子。
单行输入,包含空格分隔的月、日和年,格式为MM DD YYYY。
08 05 2015
用大写字母输出正确的日期。
WEDNESDAY

import calendar

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

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

Question 96

给定两组整数M和N,按升序打印它们的对称差。术语对称差指示存在于M或N中但不存在于两者中的那些值。
输入的第一行包含整数M。第二行包含M个空格分隔的整数。第三行包含整数N。第四行包含N个空格分隔的整数。
4
2 4 5 9
4
2 4 11 12
按升序输出对称差分整数,每行一个。
5
9
11
12文章来源地址https://www.toymoban.com/news/detail-466762.html

n = int(input())
set1 = set(map(int,input().split()))

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

ans = list(set1 ^ set2)
ans.sort()
for i in ans:
     print(i)

到了这里,关于100+Python挑战性编程练习系列 -- day 23的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包