Python(上机题) 通俗易懂的基础题目解析

python 题目


题目一:幸运数对

写一个自定义函数,用于判断两个数是否为幸运数对,所谓幸运数对是指两数相差3,且各位数字之和能被6整除的一对数,如147和150就是幸运数对。要求找出所有的3位数幸运数对。

def Yy(a):

    b = a // 100
    s = a // 10 % 10
    g = a % 10
    k = b + s + g

    if k % 6 == 0:
        return 1
    else:
        return 0


for i in range(100, 1000):
        j=i+3
        if(Yy(i) and Yy(j)):
            print(i,j)
    

    
运行结果:
129 132
138 141
147 150
189 192
219 222
228 231
237 240
279 282
.......
.......
.......

题目二:lambda 函数找最大值

定义一个lambda函数,返回三个数中的最大值。要求从键盘输入3个整数,找出其中的最大值。

a,b,c = input().split(",")
k = lambda a1, b1, c1: max(a1, b1, c1)
print(k(a, b, c))

题目三:n个数前后互换 (切片)

定义一个函数,将n个数前半部分和后半部分互换。n为奇数时,中间的数不移动
示例如下:1,2,3,4,5
对换后4 5 3 1 2

def LeftRotateString(s, n):
    #如果是奇数,则中间数不变
    if len(s)%2!=0:
        return s[n+1:]+s[n:n+1]+s[:n]

    else:
        return s[n:] + s[:n]


a=input().split(",") #逗号分隔拆分

print(LeftRotateString(s=a,n=len(a)//2))


运行结果:
1,2,3,4,5 
['4', '5', '3', '1', '2']

题目四:字符串相减(删除指定字符)

定义一个函数完成两个字符串的减法,例如abcdabcde-ab表示从字符串abcdabcde中删除全部ab,
结果为cdcde,字符串的减法表达式从键盘输入。
示例如下:
请输入字符串减法表达式:abcdabcde-ab
输出结果为:
abcdabcde-ab=cdcde

方法一:可以用空字符来替换特定的字符,来实现删除
a,s=input().split("-")

dd=a.replace(s,"")
print(dd)


运行结果:
abcdabcde-ab
cdcde
方法二:用re.sub()方法(re正则表达式库)来实现删除
import re

a, s = input().split("-")
print(re.sub(s,"",a,2))


运行结果:
abcdabcde-ab
cdcde

.replace()方法

replace(…) method of builtins.str instance S.replace(old, new[, count]) -> str

参数
old – 将被替换的子字符串。
new – 新字符串,用于替换old子字符串。
max – 可选字符串, 替换不超过 max 次

比如,字符串a=‘天王盖地虎:宝塔镇河妖’,尝试将其中的王字符删除,将王字符替换成空字符。

注意,它返回的是替换后(在这种情况下,是删除字符)的字符,没有改变原始字符串,也就是说,a还是原来那个a。所以如果想使用替换后的字符需要指定一个变量进行赋值。
在这里插入图片描述
运行结果:
在这里插入图片描述
眼前的你,发现还有一个可选参数,count
count参数就可以指定要替换几个。我们无意中知道了如何删除指定数目的字符。
在这里插入图片描述
运行结果:
在这里插入图片描述

re.sub()方法
除了使用Python标准库中的方法,还可以使用re正则表达式库,来实现。

使用re.sub()方法,这个方法的功能更强大,可以替换特定模式的字符。

因为模式匹配比较麻烦,所以比较强大。

sub(pattern, repl, string, count=0, flags=0)

pattern代表指定的模式,这是强大的原因,如果简单点使用,只指定特定字符,就可以用’特定字符’来表示模式。

repl代表的是,需要替换成的字符,如果删除,就是替换成空字符。

string代表的是,需要被替换的字符串。

count是替换的次数。

在这里插入图片描述

运行结果:
在这里插入图片描述

总结:

  • 无论是Python字符串自带的.replace()方法,还是re提供的.sub()方法,都是不改变原来的字符串,返回值才是替换的字符串。所以,如果要使用替换的字符串,就需要将返回值赋值给一个变量。
  • 这两种方法,默认都是替换所有的指定字符。
  • 7
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

颖火虫-IT赵云

您的鼓励就是对我最大的进步!!

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

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

打赏作者

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

抵扣说明:

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

余额充值