本文收录了蓝桥杯官网题库中的python基础试题 共17道,均已在蓝桥杯官网验证正确
参考链接:
https://blog.youkuaiyun.com/yingyuzhai/article/details/122498052
1 A+B问题
a,b=map(int,input().split(' '))
print(a+b)
2 数列问题
n=int(input())
if 1<=n<=200:
a=list(map(int,input().split()))
for i in range(n):
if abs(a[i])>=10000:
error()
a.sort()
#print(a)不对
for i in range (n):
print(a[i],end=' ')
3 十六进制转八进制
b=[]
n=int(input())
if 1<=n<=10:
for i in range(n):
a=input()
c=oct(int(a,16))
b.append(c[2:])
for i in range(n):
print(b[i])
4 十六进制转十进制
a=input()
if len(a)<=8:
a=int(a,16)
print(a)
#更简便方法
# 方法一
re = int(input(),16)
print(re)
# 方法二
n=input()
print(int(n,16))
5 十进制转十六进制
a = int(input())
if a>=0:
print(hex(a).upper()[2:])
6 特殊回文数
n=int(input())
for i in range(10000,1000000):#
a=str(i)
if a[0]==a[-1] and a[1]==a[-2] and a[2]==a[-3]:
sum=0
for j in range(len(a)):
sum+=int(a[j])
if sum==n:
print(i)
#更简便方法
def replies(a):
for z in range(10000,1000000):
z=str(z)
if z == z[::-1]:
if a==sum(int(i) for i in list(z)):
print(z)
x=int(input())
replies(x)
7 回文数
for i in range(100,1000):
a=str(i)
if i==int(a[0])**3+int(a[1])**3+int(a[2])**3:
print(i)
8 杨辉三角形
n=int(input())
a=[1,1]
a1=[]
if n>=1:
print(1)
if n>=2:
print("1 1")
for i in range(3,n+1):
a1.append(1)
for j in range(len(a)-1):
b=a[j]+a[j+1]
a1.append(b)
a1.append(1)
a=a1
a1=[]
for j in range(len(a)):
print(a[j],end=' ')
print()
9 查找整数
n=int(input())
a=list(map(int,input().split()))
c=int(input())
stage=0
for i in range(n):
if c==a[i]:
print(i+1)
stage=1
break
if stage==0:
print(-1)
#更简便方法
#else可以用在for后面
n = int(input())
li = list(map(int,input().split()))
a = int(input())
for i in li:
if i == a:
print(li.index(a)+1)
break
else:
print("-1")
10 数列特征
n=int(input())
a=list(map(int,input().split()))
a.sort()
print(a[len(a)-1])
print(a[0])
print(sum(i for i in list(a)))
#可以直接写sum(a)
#即:
print(sum(a))
11 字母图形
letter = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
n,m=map(int,input().split())
for i in range(n):
for j in range(m):
print(letter[abs(i-j)],end='')
print()
#另一种方法 字符与ASCII码的转换函数ord和chr
#示例代码:
print(ord("A"))
print(chr(65))
#输出结果:
65
A
#故:
n,m=map(int,input().split())
for i in range(n):
for j in range(m):
print(chr(abs(i-j)+65),end='')
print()
12 01字串
for i in range(32):
print(bin(i)[2:].rjust(5, "0"))
#字符串定长填充的三种方法(定长为5 右侧对齐 左侧填0)
a=("1").rjust(5,'0')
#对int有:
print("%05d"%1)
a=("1").zfill(5)
13 闰年判断
n=int(input())
if (n%4==0 and n%100!=0)or n%400==0:
print("yes")
else:
print("no")
14 Fibonacci数列
n=int(input())
a,b=1,1
for i in range(2,n): #i从0到n-1 F从1到n
a,b=b,(a+b)%10007
print(b)
15 圆的面积
import math
r=int(input())
print("%.7f"%(math.pi*r**2))
16 序列求和
n=int(input())
print(sum(i for i in range(1,n+1)))
#上面方法运行超时
n=int(input())
print(int((n+1)*n/2)))
17 闰年判断
n = int(input())
if n % 4 == 0 and not n % 100 == 0 or n % 400 == 0:
print("yes")
else:
print("no")
总结:
对输入数的范围并没有严格的判断要求
a=a[::-1]回文数
sum(int(i) for i in list(z)) 或 sum(a)a是一个int数列名称
[nums.append(i) for i in num]
for······else:······
字符转ASCII码:ord(str) ASCII码转字符chr()
字符占5个位子 右侧对齐 左侧填充0 .rjust(5,"0") .zfill(5) 或 print('%05d' %1)