python程序设计——练习3

1.在区间范围内统计回文数字的数目

Description
给你两个非负整数 low 和 high 。请你返回 low 和 high 之间(包括二者)回文数的数目。回文就是数字中心对称,从左向右读和从右向左读的内容是一样的。【注意:low 一定小于 high,且 low 大于10】
Input
一行,两个非负整数,中间用英文逗号隔开。
Output
一行,一个整数。
Sample Input 1

100,200

Sample Output 1

10

Sample Input 2

456,654

Sample Output 2

19

代码:

l, r = map(int, input().split(','))
ans = 0
for i in range(l,r+1):
    if str(i)==str(i)[::-1]:
        ans+=1
print(ans)

2.字符串替换

Description
将给定字符串中的大写字母和小写英文字母都按以下对应规则替换:
在这里插入图片描述
Input
输入在一行中给出一个不超过80个字符、并以回车结束的字符串。
Output
输出在一行中给出替换完成后的字符串。
Sample Input 1

CAPItaL LeTtERS

Sample Output 1

The replaced text is:XZKRgzO OvGgVIH

代码:

s = input()
ans = ''
for i in range(len(s)):
    if s[i] >= 'a' and s[i] <= 'z':
        ans += chr(ord('z')+ord('a')-ord(s[i]))
    elif s[i] >= 'A' and s[i] <= 'Z':
        ans += chr(ord('Z')+ord('A')-ord(s[i]))
    else:
        ans += s[i]
print('The replaced text is:'+ans)

3.字符串基本操作

Description
输入一行字符串,输出每行英文字母、数字及其他字符的个数,并将字符串中的小写字母变成大写字母,大写字母保持不变后输出。
Sample Input 1

aBBcc学123习一个BCc

Sample Output 1

字母字符数有8个,阿拉伯数字字符数有3个,其他字符有4个,本条字符转换为:ABBCC学123习一个BCC

代码:

s = input()
cnt1, cnt2, cnt3 = 0, 0, 0
for i in range(len(s)):
    if s[i] >= 'a' and s[i] <= 'z' or s[i] >= 'A' and s[i] <= 'Z':
        cnt1 += 1
    elif s[i] >= '0' and s[i] <= '9':
        cnt2 += 1
    else:
        cnt3 += 1
print(f'字母字符数有{cnt1}个,阿拉伯数字字符数有{cnt2}个,其他字符有{cnt3}个,本条字符转换为:' + s.upper())

4.计算字符个数

Description
通过输入,在一行内接收一个仅由字母和数字组成的字符串,还有一个单一字符,然后输出“输入的字符串”中含有该字符的个数。不区分大小写。输入格式:输入一个由字母和数字组成的字符串,和一个字符,以空格隔开。输出格式:输出“输入的字符串”中含有该字符的个数。
【提示】:1、必须使用字符串处理方法str.lower()或str.upper()。2、输入数据仅占一行,获取输入的字符串和字符必须使用str.split()分别获取。
Sample Input 1

a1234bAcdeAf a

Sample Output 1

3

代码:

s1, s2 = input().split()
print(s1.upper().count(s2.upper()))

5.字符串截取

Description
输入一个长度为10的字符串,截取其中第4-5和第7-8两个区域并显示。
Input
一个长度为10的字符串。
Output
输出两个切片区域,中间无间隔。
Sample Input 1

我喜欢去故宫和长城。

Sample Output 1

故宫长城

代码:

s = input()
print(s[4:6] + s[7:9])

6.工作日的力量part two

Description
如果一个人在一年365天,每天进步1%,则累计获得的进步一定比工作日模式下累计获得的进步要大。那么在工作日的模式下,要努力到什么水平,才能达到与每天努力1%一样呢?假设现有两种努力模式:(1)一年365天,每天进步1%,不停歇;(2)一年365天,每工作n天休息1天,假设在休息日下降1%,工作日每天进步x%。请编写程序计算出,当两种工作模式取得的成果一样时,x的值。
Input
一个整数n。
Output
共一行,为x的值,保留三位有效数字。
Sample Input 1

4

Sample Output 1

工作日的努力参数是:0.015

代码:

def find(x):
    res = 1
    for i in range(1,366):
        if i % (n + 1) == 0:
            res *= 0.99
        else:
            res *= (1 + x)
    return res
n = int(input())
ans = 0.01
while find(ans) < 1.01 ** 365:
    ans += 0.0001
print('工作日的努力参数是:%.3f' % ans)

7.克莱姆法则求解方程

Description
请用克莱姆法则解下面的线性方程2x2系统:
在这里插入图片描述
编写程序,用户输入数字a、b、c、d、e和f,然后显示x和y的结果。如果ad-bc为零,呈现“The equation has no solution”。
Input
a,b,c,d,e和f的值(英文逗号分隔)。
Output
x和y的值(空格分隔,小数点后保留1位)。
Sample Input 1

1.0,2.0,2.0,4.0,4.0,5.0

Sample Output 1

The equation has no solution

Sample Input 2

2,4,1,8,3,2

Sample Output 2

x=1.3,y=0.1

代码:

a, b, c, d, e, f = map(float, input().split(','))
if a * d - b *c == 0:
    print('The equation has no solution')
else:
    print('x=%.1f,y=%.1f' % ((e * d - b * f) / (a * d - b* c),(a * f - e * c) / (a * d - b * c)))

8.字符统计

题目描述
从键盘输入任意一个字符串 S 和一个整数 N,中间用英文逗号’,‘隔开,并保证整数 N 小于字符串 S的长度。
编写程序,完成以下要求:
1、把字符串 S 最右边的 N 个不重复的小写英文字母挑选出来,并以字符串的形式,按照该字符在字符串 S 中的相对位置排列输出。如果输入的内容中没有 N 个小写英文字母,则显示信息“Not Found”。
2、若字符串 S中存在数字,则计算 S 中所有数字的和并输出,若不存在数字,则显示信息 ”No Number“。
【注:题目规定若S中存在数字则一定只为0~9的整数,其他情况不需要考虑】
输入要求
仅一行,任意输入一个字符串 S 和一个整数 N,中间用英文逗号’,‘隔开。
输出要求
共两行,第一行为字符串 S 中最右边的 N 个不重复的小写英文字母,若不够N个,则输出“Not Found”;
第二行输出字符串 S 中所有数字的和,若S中没有数字,则输出”No Number“。
输入样例 1

poemp133314567,7

输出样例 1

Not Found
Sum=33

输入样例 2

AiBe12shwQ2 shAdu 12shu,5

输出样例 2

wdshu
Sum=8

输入样例 3

syenish%$#@#&yesoosrqo,8

输出样例 3

ihyesrqo
No Number

输入样例 4

%aabc$#@dc#&ddcaa,10

输出样例 4

Not Found
No Number

代码:

s, n = input().split(',')
n = int(n)
ans = ''
sum = -1
for i in range(-1,-len(s)-1,-1):
    if s[i] >= 'a' and s[i] <= 'z'  and ans.count(s[i]) == 0:
        ans +=s[i]
    elif s[i] >= '0' and s[i] <= '9':
        sum += int(s[i])
if len(ans) < n:
    print('Not Found')
else:
    print(ans[n-1::-1])
if sum == -1:
    print('No Number')
else:
    print('Sum=%d' % (sum + 1))

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值