蓝桥杯练习

3.10

简单 a+b

输入两个整数A和B,范围不超过2^10

while True:
	try:
		a,b=map(int,input().strip().split())
		print(a+b)
	except:
		break

Python中map的用法
map
Python strip()方法
strip
split方法
split

简单 密码破译

要将"China"译成密码,译码规律是:用原来字母后面的第4个字母代替原来的字母.
例如,字母"A"后面第4个字母是"E".“E"代替"A”。因此,“China"应译为"Glmre”。
请编一程序,用赋初值的方法使cl、c2、c3、c4、c5五个变量的值分别为,’C’、’h’、’i’、’n’、’a’,经过运算,使c1、c2、c3、c4、c5分别变为’G’、’l’、’m’、’r’、’e’,并输出。

str=input()
for i in str:
   print(chr(ord(i)+4),end='')

中等 母牛的故事

有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?

while True:
    n=int(input())
    lis=[1,2,3] #前三年的数量列表
    if n==0: #结束输入
        break
    else:
        for i in range(3,n):
            lis.append(lis[i-1]+lis[i-3]) #数量关系
    print(lis[n-1])

简单 三个数里找最大值

a=list(map(int,input().split()))
a.sort()
print(a[len(a)-1])

成绩评定

给出一百分制成绩,要求输出成绩等级‘A’、‘B’、‘C’、‘D’、‘E’。 90分以及90分以上为A,80-89分为B,70-79分为C,60-69分为D,60分以下为E。

字典推导,一键取值

print({k:v for k,v in zip(list(range(101)),list('E'*60+'D'*10+'C'*10+'B'*10+'A'*11))}.get(int(input())))

lambda三元!直接打印

print((lambda x:'A' if x>=90 else 'B' if x>=80 else 'C' if x>=70 else 'D' if x>=60 else 'E')(int(input())))

入门 数字的处理与判断

给出一个不多于5位的整数,要求 1、求出它是几位数 2、分别输出每一位数字 3、按逆序输出各位数字,例如原数为321,应输出123

sum=input()
# len()==>内置函数,求字符串长度。
print(len(sum))
#列表存放数字来打印
sum_list=list(sum)
# ★input输入的是字符串字型而不是数字,所以有时候要转换为数字的话
# d=map(int,sum_list)
# print(d)    # 网上一些作者只是这样写的,但是这样只是打印出该地址。
# print(list(d))  #这样才是把字符串(字符串列表)转换为数字列表。
# ★也可以这样
# new = list(map(int,sum)
# print(new
for j in sum_list:
    print(j,end=" ")
    # ""==>里面要打空格,否则内容会紧挨一起。抑制换行效果。
print()
# 起换行效果
print(sum[::-1])
# 倒序输出,【开始:结束:步长】,步长为负数,即倒序。
# ▲倒序所有的话,<结束>不要写,不能写0,切片左闭右开,

筛法求素数

n=int(input())
primes=[] 
alist=[True]*(n+1) #创建一个有n+1个True的列表
for i in range(2,n+1):
   if alist[i]: #将i代入is_prime列表中,如果true则执行,如果false则不执行
       primes.append(i)
 
       #用当前素数i去筛掉所有能被它整除的数
       for j in range(i*2,n+1,i): #依次取i的倍数; 从i*2开始循环到n+1,步长为i;
           alist[j]=False
 
for i in range(len(primes)):
   print(primes[i])

字符逆序

两种思路

  1. 切片法
x=input("")
x=x[::-1]    #列表切片,逆序输出
print(x)
  1. 列表反转法
l=input().split()
p=[]     #新建列表
for i in range(len(l)):
    k=list(l[i])     #将每一个单词建成一个列表
    k.reverse()    #反转
    m=''.join(k)
    p.append(m)  #添加至新列表中
p.reverse()
print(' '.join(p))  #注意引号中间是空格,用空格连接每一个单词

简单 1094 字符串的输入与输出处理

输入
第一行是一个正整数N,最大为100。之后是多行字符串(行数大于N), 每一行字符串可能含有空格,字符数不超过1000。
输出
先将输入中的前N行字符串(可能含有空格)原样输出,再将余下的字符串(不含有空格)以空格或回车分割依次按行输出。每行输出之间输出一个空行。

错解

def fun():
    times = int(input()) #次数
    str = []
    if times<0 and times>100:
        return 0
    str1 = input()
    while str1 != "":  #输入停止的条件
        str.append(str1)  #输入的字符串存到列表str中
        str1 = input()
    for i in range(0,times): #times 原样输出
        print(str[i])
    for i in range(times,len(str)): #以空格分隔输出
        str2 = str[i].split()
        for j in str2:
            print(j)
fun()

注意题意是在一边输入一边输出,不是全部输入之后再输出
正解

n=int(input())
for i in range(n):
    x=input()
    print(x)
    print()
while True:
    x=input().split()
    for i in x:
        print(i)
        print()
n=int(input())
while True:
    if n>0:
        print(input(),end='\n\n')
    else:
        for i in list(input().split()):
            print(i,end='\n\n')
    n-=1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Godams

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值