Python教程

python 字符串反转与找不同

本文主要是介绍python 字符串反转与找不同,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一个网站

自己之前用电脑,大部分时间就是炉石,然后就是看看知乎撒撒的,最近感觉要老了,孩子都要开始学编程了,自己还是这样玩不好吧,所以开始看看之前知乎上收藏的一些内容,其实就是想的让自己能多动一下脑子。

找到了一个网站:https://www.codingame.com

网站上的话需要工具,可算是用到买的东西了。网站需要一点英语基础,反正有翻译插件就先搞它一波。

通过前边的引导,发现了这个网站有一个实时的小比赛,一道题目,几个人做,结束后可以互相看一下实现,我个人感觉还是有点意思的。

今日的题目

两个字符串,a,b 需要先将b反转然后看看ab有几个字符不同,最后输出不同的个数。

因为自己编程不行,所以,我还是搜索了如何反转字符才做出来的,本来还想的是不是有统计不一样的函数,结果好像是没有。

import sys
import math

# Auto-generated code below aims at helping you parse
# the standard input according to the problem statement.

line_1 = input()
line_2 = input()

# Write an answer using print
# To debug: print("Debug messages...", file=sys.stderr, flush=True)
line_2_in = line_2[::-1] 

count = 0

for i in range(0,len(line_1)):
    if line_1[i] != line_2_in[i]:
        count = count + 1

print(count)

反转的几个方法

我使用的方法是切片了,简单的在回顾一下切片,也方便自己后续使用

一个完整的切片表达式包含两个“:”,
用于分隔三个参数(start_index、end_index、step),
当只有一个“:”时,默认第三个参数step=1;
当一个“:”也没有时start_index=end_index,表示切取start_index指定的那个元素。

step:正负数均可,其绝对值大小决定了切取数据时的‘‘步长”
而正负号决定了“切取方向”,正表示“从左往右”取值,负表示“从右往左”取值。当step省略时,默认为1,即从左往右以步长1取值。
“切取方向非常重要!”“切取方向非常重要!”“切取方向非常重要!”,重要的事情说三遍!

start_index:表示起始索引(包含该索引对应值);
该参数省略时,表示从对象“端点”开始取值
至于是从“起点”还是从“终点”开始,则由step参数的正负决定,step为正从“起点”开始,为负从“终点”开始。

end_index:表示终止索引(不包含该索引对应值);该参数省略时,表示一直取到数据“端点”,至于是到“起点”还是到“终点”,同样由step参数的正负决定,step为正时直到“终点”,为负时直到“起点”
参考地址链接

他山之石

自己也算是新手了,那么看看别的人是怎么写的。

I=input
I(sum(i!=j for i,j in zip(I(),I()[::-1])))

l,j=input(),input()
print(sum(x!=y for x,y in zip(l,j[::-1])))

上边是其他两个人写的,计算方式是一样的,写法上有点不同。

下面的写法还可以看懂,l,j是赋值进来的字符串。
zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象。

在我测试zip()函数的时候有一个注意点,zip()返回的对象是一个迭代器,只能遍历一次,所以不可以赋值给变量多次取用呀。

x!=y for x,y in zip(l,j[::-1])

上边的就是将zip对象里所有元组中的元素进行是否相等的判断,每次判断后返回一个true 或 false 值。到这里他的计算逻辑就知道了,不相等为true,也是数字1,最后用sum加起来。这个好像是用的生成器吗,没去仔细查了。

到这里还有一个问题就是I=input 然后用I(),I()[::-1])来代表输入的内容了。后续再看吧?

发现计算思路一样,他的实现比较简单,是用了一些我不太会的内容,值得学习。

自己测试的时候感觉,好像是少了一个括号吗?我自己要能正确运行的话要成下边的形式

sum((x != y for x,y in zip(a,b[::-1])))

后记

一个东西,断断续续搞了几天,才抽时间搞完。
学到的还是一些语言上的特性和用法。还是在提高语言的熟练度。

这篇关于python 字符串反转与找不同的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!