蓝桥杯刷题~入门训练及基础练习前11题

圆的面积

import math
PI=3.14159265358979323
r=float(input())
from decimal import *
a=PI*r*r
print ('%.7f'%a)
5
78.5398163
a=int(input())

temp1=1
temp2=1
res=0
t=0
for i in range(3,a+1):
    res=(temp1+temp2)%10007
    temp1=temp2%10007
    temp2=res%10007
#     if res >10007:
#         print(res%10007)
#         t=1
#         break
if  a<=2:    #t==0 and
    print(1)
elif  a>2:    #t==0 and
    print(res%10007)
    

序列求和

a=int(input())
res=0
for i in range(1,a+1):
    res+=i
print(int(((1+a)/2)*a))

数列排序

n=int(input())
list_=list(map(int,input().split()))
list_.sort()
res=''
for i in range(n):
    res+=str(list_[i])+' '
#     print (list_[i])
print(res)
list_=list(map(str,list_))
print(' '.join((list_)))
print('{:.1f}'.format(4.234324525254))
print('{:.4f}'.format(4.1))
print('{0}xxxxxxxx{1}'.format('这是0要传入的东西','这是1要传入的东西'))
test={'nan':'werty'}
print("ghjk{nan}gbhnjmk".format(**test))

进制转化,b o d x 分别表示二、八、十、十六进制

print('{:b}'.format(250))
print('{:o}'.format(250))
print('{:d}'.format(250))
print('{:x}'.format(250))
#千分位分隔符,这种情况只针对与数字
print('{:,}'.format(100000000))
print('{:,}'.format(235445.234235))

精度和类型f精度常和f一起使用

print('{:.1f}'.format(4.234324525254))
print('{:.4f}'.format(4.1))

十六进制转八进制

n=int(input())
res=[]
for i in range(n):
    temp=input()
    mid=int(temp,16)
    res.append('{:o}'.format(mid))
for i in range(n):
    print(res[i])

进行协议解析时,总是会遇到各种各样的数据转换的问题,从二进制到十进制,从字节串到整数等等
整数之间的进制转换:
10进制转16进制: hex(16) ==> 0x10
16进制转10进制: int(‘0x10’, 16) ==> 16
类似的还有oct(), bin()

字符串转整数:
10进制字符串: int(‘10’) ==> 10
16进制字符串: int(‘10’, 16) ==> 16
16进制字符串: int(‘0x10’, 16) ==> 16

字节串转整数:
转义为short型整数: struct.unpack(’<hh’, bytes(b’\x01\x00\x00\x00’)) ==> (1, 0)
转义为long型整数: struct.unpack(’<L’, bytes(b’\x01\x00\x00\x00’)) ==> (1,)

整数转字节串:
转为两个字节: struct.pack(’<HH’, 1,2) ==> b’\x01\x00\x02\x00’
转为四个字节: struct.pack(’<LL’, 1,2) ==> b’\x01\x00\x00\x00\x02\x00\x00\x00’

字符串转字节串:
字符串编码为字节码: ‘12abc’.encode(‘ascii’) ==> b’12abc’
数字或字符数组: bytes([1,2, ord(‘1’),ord(‘2’)]) ==> b’\x01\x0212’
16进制字符串: bytes().fromhex(‘010210’) ==> b’\x01\x02\x10’
16进制字符串: bytes(map(ord, ‘\x01\x02\x31\x32’)) ==> b’\x01\x0212’
16进制数组: bytes([0x01,0x02,0x31,0x32]) ==> b’\x01\x0212’

字节串转字符串:
字节码解码为字符串: bytes(b’\x31\x32\x61\x62’).decode(‘ascii’) ==> 12ab
字节串转16进制表示,夹带ascii: str(bytes(b’\x01\x0212’))[2:-1] ==> \x01\x0212
字节串转16进制表示,固定两个字符表示: str(binascii.b2a_hex(b’\x01\x0212’))[2:-1] ==> 01023132
字节串转16进制数组: [hex(x) for x in bytes(b’\x01\x0212’)] ==> [‘0x1’, ‘0x2’, ‘0x31’, ‘0x32’]

十六进制转十进制

a=input()
print(int(a,16))

十进制转十六进制

a=int(input())
print ('{:x}'.format(a).upper())

特殊回文数

n=int(input())
list_=[]
for i in range(1,10):
    for j in range(0,10):
        for k in range(0,10):
            if 2*(i+j+k)==n:
                list_.append(i*100000+i+j*10000+j*10+k*1000+k*100)
            if (2*i+2*j+k)==n:
                list_.append(i*10000+i+j*1000+j*10+k*100)
a=list(set(list_))
a.sort()
for i in range(len(a)):
    print(a[i])

回文数

for i in range(1,10):
    for j in range(10):
        print(i*1000+i+j*100+j*10)

特殊的数字

for i in range(1,10):
    for j in range(10):
        for k in range(10):
            if (i*i*i+j*j*j+k*k*k)==(i*100+j*10+k):
                print(i*100+j*10+k)

杨辉三角形

n=int(input())
temp=[1]
for i in range(n):
    print(' '.join(list(map(str,temp))))
    n1=len(temp)
    t1=[1]
    j=0
    while j+1<n1:
        t1.append(temp[j]+temp[j+1])
        j+=1
        #print('t1',t1)
    temp=t1
    temp.append(1)
        

查找整数

n=int(input())
list_=list(map(int,input().split()))
target=int(input())
true=0
for i in range(n):
    if list_[i]==target:
        print(i+1)
        true=1
        break
if true==0:
    print(-1)

数列特征

n=int(input())
list_=list(map(int,input().split()))
print(max(list_))
print(min(list_))
print(sum(list_))

子母图形

mn=list(map(int,input().split()))
q=['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'
]
t1=q[0:mn[1]]
print(''.join(t1))
#print('t1',t1[1],type(t1[1]))

for i in range(1,mn[0]):
    if i==1:
        print( ''.join(list(t1[1])+t1[0:-i]))
    else:
        t2[:]=reversed(t1[1:i+1])
        print(''.join(t2+t1[0:-i]))
mn=list(map(int,input().split()))
q=['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'
]
t1=q[0:mn[1]]
print(''.join(t1))
#print('t1',t1[1],type(t1[1]))
j=1
start=0
for i in range(1,mn[0]):
    if j==1:
        print( ''.join(list(t1[1])+t1[start:-j]))
    else:
        t2[:]=reversed(t1[start+1:j+1])
        print(''.join(t2+t1[start:-j]))
    j=j+1
    if j>=mn[0]:
        j=j-mn[0]
        start+=1

上面的思路错了,下面的是对的

def op1(mn,t1):
    print(''.join(t1[0:mn[1]]))
    #print('t1',t1[1],type(t1[1]))
    re=[]
    for i in range(1,mn[0]):
        if i==1:
            re=list(t1[1])+t1[0:-i]
            print(''.join(re[0:mn[1]]))
        else:
            t2=[]
            t2[:]=reversed(t1[1:i+1])
            re=t2+t1[0:-i]
            print(''.join(re[0:mn[1]]))


mn=list(map(int,input().split()))
q=['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']
op1(mn,q)

20 20
ABCDEFGHIJKLMNOPQRST
BABCDEFGHIJKLMNOPQRS
CBABCDEFGHIJKLMNOPQR
DCBABCDEFGHIJKLMNOPQ
EDCBABCDEFGHIJKLMNOP
FEDCBABCDEFGHIJKLMNO
GFEDCBABCDEFGHIJKLMN
HGFEDCBABCDEFGHIJKLM
IHGFEDCBABCDEFGHIJKL
JIHGFEDCBABCDEFGHIJK
KJIHGFEDCBABCDEFGHIJ
LKJIHGFEDCBABCDEFGHI
MLKJIHGFEDCBABCDEFGH
NMLKJIHGFEDCBABCDEFG
ONMLKJIHGFEDCBABCDEF
PONMLKJIHGFEDCBABCDE
QPONMLKJIHGFEDCBABCD
RQPONMLKJIHGFEDCBABC
SRQPONMLKJIHGFEDCBAB
TSRQPONMLKJIHGFEDCBA

发布了154 篇原创文章 · 获赞 11 · 访问量 5872

猜你喜欢

转载自blog.csdn.net/weixin_45569785/article/details/105332807