«

蓝桥杯_第三周训练题

时间:2023-10-27 15:17     作者:诺恒     分类: 考试


1. LQ1087 字符串逆序

描述

给出一个字符串,然后将字符串逆序输出。

输入描述

输入一个只包含数字及字母的字符串(2<字符串长度<100)。

输出描述

将字符串逆序输出。

用例输入 1 用例输出 1
abc cba
n = input()
# range(起,止,步进数): range(2,-1,-1), 就是 2 到 0,每次循环-1;注意:止的数值是-1后的值
# 起 len(n)-1 获取到字符串的长度(abc=3)但数据是重0开始算的,所以最大值要-1;止 0-1 最小值是0 的话,就要-1;-1是步进数,每次-1操作
for i in range(len(n)-1,0-1,-1): 
    print(n[i], end="")

2. 【入门】统计字符的个数

描述

从键盘中任意输入一串字符,直至输入"#"字符代表结束.请编程统计输入的字符中的大写字母,小写字母和数字字符的个数分别是多少?

输入描述

输入只有一行,包括一串字符.(长度小于20)

输出描述

输出只有一行(这意味着末尾有一个回车符号),包括3个整数。分别代表大写字符,小写字符和数字字符的个数。

用例输入 1 用例输出 1
daDSALDdcada3240 5 7 4
n = input()

isUp = 0     # 大写字数累计值
isLow = 0    # 小写字数累计值
isOther = 0  # 其它字数累计值

for i in range(len(n)): # len(n) 获取字符串的长度来做循环次数
    if n[i] == "#":  # 遇到 # 号时,程序终止
        break;       # break 跳出循环
    elif n[i].isupper(): # isupper() 判断是否大写函数
        isUp += 1        # 大写字数累计+1
    elif n[i].islower(): # islower() 判断是否小写函数
        isLow += 1       # 小写字数累计+1
    else:
        isOther += 1     # 其它字数累计+1

print(isUp, isLow, isOther)  # 打印输出,自带空格分隔

3. 【入门】删除指定字符

描述

从键盘输入一个字符串str和一个字符c,删除str中的所有字符c并输出删除后的字符串str。

输入描述

第一行是一个字符串; (不含空格)
第二行是一个字符。

输出描述

删除指定字符后的字符串。

用例输入 1** 用例输出 1
sdf$$$sdf$$
$
sdfsdf
_str = input()
_str2 = input()

print(_str.replace(_str2,""))  # replace 替换函数 replace(旧值,新值)

4. LQ1092 数位求和

描述

给定两个正整数 N 和M(N<M) ,统计N 到M 之间(包含N 和M)的正整数中,各个位上的数字之和为8 的有多少个。

如:N=100,M=150,100 到 150 之间有 5 个数,各个位上的数字之和为 8。分别是 107、116、125、134、143。

输入描述

输入两个正整数 N 和M(100≤N<M≤801),且正整数之间以一个空格隔开。

输出描述

输出一个整数,表示N 到M 之间(包含N 和M)的正整数中有多少个各个位上的数字之和为 8。

用例输入 1** 用例输出 1
100 150 5
n = input()

n1 = int(n.split(" ")[0])
n2 = int(n.split(" ")[1])

cc = 0

for i in range(n1, n2+1):
    # 获取百位数:i//100%10 获取十位数:i//10%10 获取个位数:i%10 (固定获取方法,记住即可)
    if i//100%10 + i//10%10 + i%10 == 8:  
         cc += 1

print(cc)

5. LQ1067 做统计

描述

输入 n 个正整数,以空格分隔。

依次输出其中的最大值、最小值以及平均值,以 逗号 分隔。

输入描述

第一行 一个整数n。

第二行 n 个正整数,以空格分隔。

输出描述

三个数,以逗号“ ,”分隔。

用例输入 1** 用例输出 1
10
1 2 3 4 5 6 7 8 9 10
10,1,5.5

提示

编译器默认只忽略行末的空格和换行符,其他内容不忽略。

n = int(input())
nn = input()

n_list = nn.split(" ")   # 将字符串变成列表 ["1","2","3","4","5","6","7","8","9","10"]
max_val = int(n_list[0]) # 记录最大值,获取列表的第一个值并转成 int 整型
min_val = int(n_list[0]) # 记录最小值,获取列表的第一个值并转成 int 整型
_sum = 0 # 数值累计值

for i in n_list:  # 循环列表,列表里面的数值是字符串类型
    num = int(i)  # 将列表中的字符串转成整型 int,不然赋值和计算会报错
    if num > max_val: # 判断当前值和记录的最大值做比较
        max_val = num # 当前值 “大于” 记录中的最大值时,替换成当前值
    if num < min_val: # 判断当前值和记录的最小值做比较
        min_val = num # 当前值 “小于” 记录中的最小值时,替换成当前值

    _sum += num # 当前值累加

# "{},{},{}".format() 格式化输出的结果,有多少个 {},在 format 里面就要对应多少个输出值(位置要对应上) 
print("{},{},{}".format(max_val,min_val,_sum/n)) 

6. LQ1175 相邻身高差

描述

有N (4<N<100)名同学站成一队,已知每名同学的身高 ( 单位: 厘米),请比较该队中任意相邻两名同学的身高差( 取正值 ),并输出最大的身高差。

例:N = 8,8名同学的身高分别是151、120、144、182、160、158、147、161.

相邻两名同学的身高差依次是31、24、38、22、2、11、14,其中最大身高差是38。

输入

第一行输入一个正整数N (4<N<100),表示站队的同学人数第二行输入N个正整数( 80<正整数<220),表示队列中学生的身高( 单位: 厘米),相邻两个正整之间用一个空格隔开。

输入描述

第一行输入一个正整数N (4<N<100),表示站队的同学人数第二行输入N个正整数( 80<正整数<220),表示队列中学生的身高( 单位: 厘米),相邻两个正整之间用一个空格隔开。

输出描述

输出一个非负整数,表示相邻两名同学中最大身高差。

用例输入 1** 用例输出 1
8
151 120 144 182 160 158 147 161
38
n = int(input())
nn = input()

n_list = nn.split(" ") # 将字符串变成列表 ["151","120","144","182","160","158","147","161"]
max_val = 0              # 记录最大值
old_val = int(n_list[0]) # 记录前一位数

for i in n_list:  # 循环列表,列表里面的数值是字符串类型
    num = int(i)  # 将列表中的字符串转成整型 int,不然赋值和计算会报错
    betw = old_val-num # 计算相邻数的差值

    if betw < 0:  # 差值一定是要正数,小于零就要做正数处理
        betw = betw*-1 # 做正数处理 *-1

    if betw > max_val:  # 新差值 “大于” 记录值时,当前差值替换成最大值
        max_val = betw

    old_val = num  # 将当前值赋值成前一位数

print(max_val)

标签: 蓝桥杯 stema python3