【蓝桥杯基础练习】第二天: ① 闰年判断 ② 01字串 ③ 字母图像 ④ 数列特征 ⑤ 查找整数


闰年判断

'''
给定一个年份,判断这一年是不是闰年。
当以下情况之一满足时,这一年是闰年:
1. 年份是4的倍数而不是100的倍数;
2. 年份是400的倍数。
其他的年份都不是闰年。
样例输入
2013
样例输出
no
样例输入
2016
样例输出
yes
'''
a = int(input())
if (a%4==0 and a%100!=0) or a%400==0 :
    print('yes')
else :
    print('no')

01字串

'''
问题描述
对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。它们的前几个是:
00000
00001
00010
00011
00100
请按从小到大的顺序输出这32种01串。
输出格式
输出32行,按从小到大的顺序每行一个长度为5的01串。
样例输出
00000
00001
00010
00011
<以下部分省略>
'''

俩种代码的输出结果不同,第一种输出的有空格,第二种是连续输出(无空格)

for a in range(0,2):
    for b in range(0,2):
        for c in range(0, 2):
            for d in range(0, 2):
                for e in range(0, 2):
                    print(a,b,c,d,e) # 输出有空格,卧槽就离谱
for a in range(0,2):
    for b in range(0,2):
        for c in range(0,2):
            for d in range(0,2):
                for e in range(0,2):
                    print("%d%d%d%d%d" %(a,b,c,d,e)) # 标准的int输出

【知识点】

print("%d%d%d%d%d" %(a,b,c,d,e)) # 标准的int输出


字母图像

'''
问题描述
利用字母可以组成一些美丽的图形,下面给出了一个例子:
ABCDEFG
BABCDEF
CBABCDE
DCBABCD
EDCBABC
这是一个5行7列的图形,请找出这个图形的规律,并输出一个n行m列的图形。
输入格式
输入一行,包含两个整数n和m,分别表示你要输出的图形的行数的列数。
输出格式
输出n行,每个m个字符,为你的图形。
样例输入
5 7
样例输出
ABCDEFG
BABCDEF
CBABCDE
DCBABCD
EDCBABC
'''

只有70分:

num = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','S','Y','Z']
n, m = map(int, input().split())
if n >= 1 and m <= 26:
    count = 0
    for i in range(0, n):
        s = num[0+i]
        for j in range(0,m):
            if s=='A':
                print(num[j-i], end='')
            else :
                print(s, end='')
                s = num[i-j-1]
        print(end="\n")

100分通过:【一个字,绝!】

n, m = map(int, input().split())
for i in range(1, n + 1):
    for j in range(1, m + 1):
        if j == m:#每行的最后一个
            print(chr(abs(i - j) + 65), end='\n')
        else:
            print(chr(abs(i - j) + 65), end='')

【知识点】

  • n, m = map(int, input().split()) :间隔输入
  • abs() :取绝对值
  • chr()ord():ASCII表的转换函数【下方代码】
ord('a')
97
chr(97)
a

数列特征

'''
问题描述
给出n个数,找出这n个数的最大值,最小值,和。
样例输入
5
1 3 -2 4 5
样例输出
5
-2
11
'''
n = int(input())
a = list(input().split())
for i in range(0,n):
    a[i] = int(a[i])
print(max(a))
print(min(a))
print(sum(a))

【知识点】

  • list(input().split()):以空格的形式输入列表,但是注意转换,不然返回的是str类型
  • 最大值最小值以及和,python都自动封装了,直接调用即可

查找整数

'''
问题描述
给出一个包含n个整数的数列,问整数a在数列中的第一次出现是第几个。
输入格式:
第一行包含一个整数n。
第二行包含n个非负整数,为给定的数列,数列中的每个数都不大于10000。
第三行包含一个整数a,为待查找的数。
输出格式:
如果a在数列中出现了,输出它第一次出现的位置(位置从1开始编号),否则输出-1。
样例输入
6
1 9 4 8 3 9
9
样例输出
2
'''
n = int(input())
num = list(input().split())
a = int(input())
for i in range(0,n):
    num[i] = int(num[i])
    if a==num[i]:
        print(i+1)
        break
    elif i == n-1 :
        print(-1)

【知识点】

  • 记得list输入要进行转化
  • if ... elif ... else才是正规的判断语句【记得与Java,c,c++区分】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bessie_Lee_gogogo

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值