Python编程习题(1)

1. 大于身高的平均值

中小学生每个学期都要体检,要量身高,因为身高可以反映孩子的生长状况。现在,一个班的身高已经量好了,请输出其中超过平均身高的那些身高。程序的输入为一行数据,其中以空格分隔,每个数据都是一个正整数。程序要输出那些超过输入的正整数的平均数的输入值,每个数后面有一个空格,输出的顺序和输入的相同。

输入格式:

在一行输入中一个班的身高值,以空格分隔。

输出格式:

在一行输出超过输入的平均数的输入值,以空格分隔。

输入样例:

在这里给出一组输入。例如:

143 174 119 127 117 164 110 128

输出样例:

在这里给出相应的输出。例如:

143 174 164 

解答代码如下: 

l1 = list(map(int,input().split())) #用一个表l1接受信息

sum = 0
count = 0#用来统计人数和身高总数

for i in range(0,len(l1)):
    sum = sum +l1[i]
    count = count + 1#统计参与计算的人数并求和

average = sum/count#求平均值

for i in range(0,len(l1)):
    if average < l1[i]:
        print("{:d} ".format(l1[i]),end="")#输出结果

2. 输出字母在字符串中位置索引

输入一个字符串,再输入两个字符,求这两个字符在字符串中的索引。

输入格式:

第一行输入字符串
第二行输入两个字符,用空格分开。

输出格式:

从右向左输出字符和索引,即下标最大的字符最先输出。每行一个。

输入样例:

在这里给出一组输入。例如:

pmispsissippi
s p

输出样例:

在这里给出相应的输出。例如:

11 p
10 p
8 s
7 s
5 s
4 p
3 s
0 p

 解答代码如下:

list1=list(input())#创建一个列表来收集结果

list1.reverse()#将列表中的元素顺序反过来

a,b = input().split()#获取需要查找的元素

c=len(list1)

for i in list1:
    c-=1
    if i==a or i==b:
        print("{} {}".format(c,i))#遍历整个表格输出结果

3. 求整数的位数及各位数字之和

对于给定的正整数N,求它的位数及其各位数字之和。(提示:把整数转换成字符串,列表,用sum和len函数)

输入格式:

输入在一行中给出一个正整数N。

输出格式:

在一行中输出N的位数及其各位数字之和,中间用一个空格隔开。

输入样例:

在这里给出一组输入。例如:

456

输出样例:

在这里给出相应的输出。例如:

3 15

解答代码如下: 

num  = list(input())#以列表的形式读入整数

length = len(num)#求出列表的长度,也就是读入整数的位数

sum = 0

for i in range(0,length):
    n = int(num[i])
    sum = sum + n
print("{} {}".format(length,sum))#遍历整个列表,将输入的整数逐位相加得到结果

4. 字符替换

本题要求编写程序,将输入字符串中的大写英文字母按以下对应规则替换,其他字符不变。(提示:转换表用元组实现)

原字母对应字母
AZ
BY
CX
DW
......
XC
YB
ZA

输入格式:

在一行中输入字符串

输出格式:

在一行中给出替换完成后的字符串。

输入样例:

在这里给出一组输入。例如:

This is a pen.

输出样例:

在这里给出相应的输出。例如:

Ghis is a pen.

解答代码如下: 

line = list(input())#将要处理的字符串存储在列表中

length = len(line)

for i in range(0,length):
    if(line[i]>='A'):
        if(line[i]<='Z'):#判断其是否为大写字母
            a = chr(ord('M')-ord(line[i])+ord('N'))
            line[i] = a#按照规律将其对应转换

for i in range(0,length):
    print(line[i],end='')#将处理完之后的字符串按顺序输出

5. 删除字符

输入一个字符串 str,再输入要删除字符 c,大小写不区分,将字符串 str 中出现的所有字符 c 删除。提示:去掉两端的空格。

输入格式:

在第一行中输入一行字符
在第二行输入待删除的字符

输出格式:

在一行中输出删除后的字符串

输入样例1:

在这里给出一组输入。例如:

        Bee
   E

输出样例1:

在这里给出相应的输出。例如:

result: B

输入样例2:

在这里给出一组输入。例如:

  7!jdk*!ASyu
  !

输出样例2:

在这里给出相应的输出。例如:

result: 7jdk*ASyu

解答代码如下: 

line = list(input().strip())#读入要处理的字符串,删除前后的空格
c = input().strip()#读入目标字符,删除前后的空格
length = len(line)

t = 0

for i in range(0,length):
    if line[t] == c :
        del line[t]
        length = length - 1
    else: t = t + 1#删除字符串中的目标字符

if c >= 'A' :
    if c <= 'Z' :#判断要删除的目标字符是否为大写字母
      d = chr(ord(c) - ord ('A') + ord('a'))
      t = 0
      for i in range(0,length):
          if line[t] == d :
              del line[t]
              length = length - 1
          else: t = t + 1#删除字符串中的目标字符的小写形式

if  c >= 'a' :
    if c <= 'z' :#判断要删除的目标字符是否为小写字母
      d = chr(ord(c) + ord ('A') - ord('a'))
      t = 0
      for i in range(0,length):
          if line[t] == d :
              del line[t]
              length = length - 1
          else: t = t + 1#删除字符串中的目标字符的大写形式

print("result:",end=" ")
for i in range(0,length):
    print(line[i],end="")#按格式输出处理后的字符串

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

博学者普克尔特

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

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

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

打赏作者

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

抵扣说明:

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

余额充值