循环结构03

文章介绍了几个Python编程题目,涉及字符串计分、数组间距离计算、矩阵对角线元素求和、数字筛选以及命题验证,展示了基础的编程技巧和逻辑应用。
摘要由CSDN通过智能技术生成

[Python字符串]统计得分

给出一个由A和X组成的字符串(长度为1-80),统计字符总得分,其中每个A的得分为目前连续出现的A的个数,X的得分为0。例如AAXXAXXAAA的得分为1+2+1+1+2+3等于10。

输入

输入一行数据,内容为由A和X组成的字符串。

输出

对于输入的字符串输出对应的得分。

样例输入 复制

AAXXAXXAAA

样例输出 复制

10

s = input()

score = 0

count = 0

for c in s:

    if c == 'A':

        count += 1

        score += count

    elif c == 'X':

        count = 0

print(score)

[Python循环]数组的距离

已知元素从小到大排列的两个数组x[]和y[],请写出一个程序算出两个数组彼此之间差的绝对值中最小的一个,这叫做数组的距离

样例输入 复制

1 2 3 4 5

6 7 8 9 10 14

样例输出 复制

1

提示:程序中使用两个input()函数进行输入。

x = list(map(int, input().split()))

y = list(map(int, input().split()))

min_distance = float('inf')

for i in x:

    for j in y:

        distance = abs(i - j)

        if distance < min_distance:

            min_distance = distance

print(min_distance)中使用两个input()函数进行输入。

[Python]求矩阵对角线元素和

求矩阵的两对角线上的元素之和

输入

矩阵的行数N

和一个N*N的整数矩阵a[N][N](1<=N<=10),整数没有规律,可以是任意规定范围内整数

输出

所输矩阵的两对角线上的元素之和

样例输入 复制

3

1 2 3

4 5 6

7 8 9

样例输出 复制

25

提示

输入数据可使用的一种思路:

n = 输入行数

for i in range(n):

     将每一行数据(input().split())处理后放入一个临时的列表中

     依次将临时列表追加到一个结果列表中

n=int(input())

lst=[]

for i in range(n):

    temp=[]

    for j in input().split():

        temp.append(int(j))

    lst.append(temp)#如何创建一个矩阵?

s=0

for i in range(n):

    for j in range(n):

        if i==j or i+j==n-1:#矩阵中每一个元素的标识在这种情况下都是唯一的

            s+=lst[i][j]

print(s)

[Python]数字筛选

输入一个2(包含)至9(包含)之间的一位数字例如7(由oj系统自动输入),输出1-100中剔除了包含该数字例如“7”、该数字的倍数例如7的倍数的所有数字,并且⼀行输出10个数字(最后一行可能不足10个数),数字之间用“,”分隔。输出结果如样例所示。

输入

不小于 2 且不超过 9 的整数

输出

输出若干行,每行 10 个数,逗号间隔,每行的最后一个数后面没有逗号,最后一行可能不足10个数(最后一个数后面也没逗号)

样例输入 复制

2

样例输出 复制

1,3,5,7,9,11,13,15,17,19

31,33,35,37,39,41,43,45,47,49

51,53,55,57,59,61,63,65,67,69

71,73,75,77,79,81,83,85,87,89

91,93,95,97,99

num = int(input())

result = []

for i in range(1, 101):

    if str(num) not in str(i) and i % num != 0:

        result.append(str(i))

        if len(result) == 10:

            print(','.join(result))

            result = []

if result:

print(','.join(result))

[Python]验证命题:37的倍数特性

验证命题:如果一个三位整数是37的倍数,则这个整数循环左移后得到的另两个数也是37的倍数,例如481是37的倍数,814和148也是37的倍数。命题为真输出字符串“It's a true proposition.”,命题为假则输出字符串“It's a false proposition.”。

提示

本题没有输入,验证所有的37倍数的三位数

for i in range(100, 1000):

    if i % 37 == 0:

        left_shifted_1 = int(str(i)[1:] + str(i)[0])

        left_shifted_2 = int(str(i)[2] + str(i)[:2])

        if left_shifted_1 % 37 != 0 or left_shifted_2 % 37 != 0:

            print("It's a false proposition.")

            break

else:

print("It's a true proposition.")

[Python]统计元素出现次数

利用Python中的random模块生成1000个0到100之间(包含0和100)的随机整数,并统计每个元素(产生的随机整数)的出现次数。为了保持测试数据的一致性,代码中利用random模块生成1000个数据时需要像如下形式:

import random

random.seed(0)

x=[random.randint(0,100) for i in range(1000)]

请在编写代码时按照上面的方式生成数据

输入

输出

输出每种元素的统计个数,每行一个按照元素从小到大的顺序从上到下输出,中间用一个空格隔开。输出格式(非内容)如下:

0 3

1 5

...

表示元素0出现3次,1出现5次等等。

import random

random.seed(0)

x = [random.randint(0, 100) for i in range(1000)]

count_dict = {}

for num in x:

    if num in count_dict:

        count_dict[num] += 1

    else:

        count_dict[num] = 1

sorted_keys = sorted(count_dict.keys())

for key in sorted_keys:

    print(f"{key} {count_dict[key]}")

  • 30
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值