蓝桥杯 python BASIC题目整理

蓝桥杯 python BASIC整理

1.BASIC-2 01字串

问题描述
对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。它们的前几个是:
00000
00001
00010
00011
00100
请按从小到大的顺序输出这32种01串。

输入格式
本试题没有输入。
输出格式
输出32行,按从小到大的顺序每行一个长度为5的01串。

for i in range(32):
    print('{:0>5d}'.format(int('{:b}'.format(i))))

其中range()的用法为:

>>>range(10)        # 从 0 开始到 10
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> range(1, 11)     # 从 1 开始到 11,左闭右开
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> range(0, 30, 5)  # 步长为 5
[0, 5, 10, 15, 20, 25]
>>> range(0, 10, 3)  # 步长为 3
[0, 3, 6, 9]
>>> range(0, -10, -1) # 负数
[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]
>>> range(0)
[]
>>> range(1, 0)
[]

format()的用法为:

print("{:.2f}".format(3.1415926))
3.14

在这里插入图片描述在这里插入图片描述

{:b}.format(i)   #把十进制数字i转化为二进制{:0>5d}.format(int({:b}.format(i)))
#用0补全二进制数,让它始终保持五位数
2.BASIC-3 字母图形

问题描述
利用字母可以组成一些美丽的图形,下面给出了一个例子:

ABCDEFG
BABCDEF
CBABCDE
DCBABCD
EDCBABC

这是一个5行7列的图形,请找出这个图形的规律,并输出一个n行m列的图形。

输入格式
输入一行,包含两个整数n和m,分别表示你要输出的图形的行数的列数。

输出格式
输出n行,每个m个字符,为你的图形。

n,m=map(int,input().split())
for i in range(n):
    for j in range(m):
        if i<=j :
            print(chr(ord('A')+j-i),end='')
        else :
            print(chr(ord('A')+i-j),end='')
    print()

其中map()用法为:map(function,序列……)
ord()函数就是用来返回单个字符的ASCII值(0-255)
相反地,chr()函数是输入一个整数0-255返回其对应的ASCII符号

2.BASIC-6 杨辉三角

问题描述
杨辉三角形又称Pascal三角形,它的第i+1行是(a+b)i的展开式的系数。
它的一个重要性质是:三角形中的每个数字等于它两肩上的数字相加。
下面给出了杨辉三角形的前4行:

1
1 1
1 2 1
1 3 3 1
给出n,输出它的前n行。

输入格式
输入包含一个数n。

输出格式
输出杨辉三角形的前n行。每一行从这一行的第一个数开始依次输出,中间使用一个空格分隔。请不要在前面输出多余的空格。

n = int(input())
l=[[0 for i in range(n)] for i in range(n)] #生成n*n的0矩阵

l[0][0] = 1
print(1)

for i in range(1,n,1):
    for j in range(0,i+1,1):
        if j==0:
            l[i][j]=1
            print(1,end=' ')
        elif j==i:
            l[i][j]=1
            print(1,end=' ')
            print()
        else:    #如果是中间的数就用这个公式
            l[i][j]=l[i-1][j]+l[i-1][j-1]
            print(l[i][j],end=' ')

刚开始没加l[i][j]=1,一直做不对,看了好久才发现没有给他赋值。

4.BASIC-9 特殊回文数

问题描述
123321是一个非常特殊的数,它从左边读和从右边读是一样的。
  输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。

输入格式
输入一行,包含一个正整数n。

输出格式
按从小到大的顺序输出满足条件的整数,每个整数占一行。

n=int(input())

def sum(number):     #求和
    sum=0
    s=list(str(number))
    for i in range(len(s)):
        sum=sum+int(s[i])
    return sum

def ispal(number):           #判断是不是回文数
    t=list(str(number))
    if t==t[::-1]:
        return True
    else:
        return False

if n>=1 and n<=54:
    i=10000
    while i<1000000:
        if ispal(i):
            if sum(i)==n:
                print(i)
        i=i+1

其中,t=t[::-1]这个语句很重要,只要这一条语句就可以判断整个数字是不是回文数。

4.BASIC-10-12 有关进制转换

十进制转其他进制只要用

{:x}.format(11)

其他进制转十进制用 (例如十六进制转十进制)
int(a,16)

其他进制之间的互相转换:
先转化为十进制,再从十进制转化。(例如实十六进制转换为八进制)'{:o}.format(int(a,16))'

5.BASIC-13 数列排序

问题描述
给定一个长度为n的数列,将这个数列按从小到大的顺序排列。1<=n<=200

输入格式
第一行为一个整数n。
  第二行包含n个整数,为待排序的数,每个整数的绝对值小于10000。

输出格式
输出一行,按从小到大的顺序输出排序后的数列。

这题没什么好说的,就是要知道排序的话直接用sort函数a.sort()就行了,不要再去写排序算法。还有就是print(a,end=’ ')代表输出的数字后面加一个空格。 换行的话是print()

连着下面的两题中需要注意的,一起写一下:
1.a.lower()是将a中的大写字符都转化为小写字符。
2.要输出a:b:c这样的格式,代码如下:

print('%d:%d:%d' % (a,b,c))
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值