引入
如何将字符串进行反序使用呢?
- 比如将“abc”变成“cba”
1.字符串
在以前学习的列表当中,我们可以使用名称[索引]的方式获取列表当中的数值,实际上,这在字符串中也是通用的,
#创建一个s字符串
s="abc"
print(s[0])
print(s[1])
print(s[2])
运行结果如下:
因此,我们可以获得第一个使的字符串反序的方法,内容如下:
s="abc"
#利用+号进行字符串连接
print(s[2]+s[1]+s[0])
运行结果如下:
总结 :字符串可以类似于列表一样,利用索引来将单个字符取出,使用的规则与列表是一致的
2.反序算法的优化
在刚才进行反序的过程当中,我们发现,我们使用的代码不具有通用性,如果我们将字符串变为4个字符,则我们需要使用如下代码来完成
s="abcd"
print(s[3]+s[2]+s[1]+s[0])
显然,如果我们有更多字符串去进行反序,那么我们的代码是不是越写越长,因此我们需要设计一个更加具有通用性的代码
s="abcde"
#获取字符串长度
n=len(s)
for i in range(n):
print(n-1-i)
运行结果如下:
- len()函数是什么?
len()函数用于获取字符串的长度,比如在本案例中,s的长度为5,因为有5个字符,因此,len(s)运算出来的最终结果就等于5 - 为什么要使用n-1-i
由此,我们就可以得到反序获得字符串的完整代码
s="abcde"
result=""
#获取字符串长度
n=len(s)
for i in range(n):
result=result+s[n-1-i]
print(result)
3.第二种反序方法
在刚才的逆序当中,我们是使用长度减1在减去循环变量的方式来进行,但是,其实我们还是有更简便的方式,比如如果我们取到第一个字符s[0]和第二个字符s[1],那么正序排列就是s[0]+s[1],结果就是“ab”,如果逆序,那排列就是s[1]+s[0]的方式,我们只需要修改字符串连接的顺序就好了,根据这个思路,我们可以写出以下代码:
s="abcde"
result=""
#获取字符串长度
n=len(s)
for i in range(n):
result=s[i]+result
print(result)
运行结果如下:
4.数字的逆序
1.利用字符串进行逆序
在上节的最后练习当中,我们使用了整除和取余数的方式来获得了个位、十位、百位三个数字,并且实现逆序,在上面的内容当中,我们已经学会了如何对字符串进行逆序,因此,我们可以想到,那我们是不是能通过字符串的方式来对数字进行逆序?答案是可以的,因为我们有str()和int()函数,因此,我们可以很容易的写出以下代码:
number=123456
s=str(number)
result=""
#获取字符串长度
n=len(s)
for i in range(n):
result=s[i]+result
print(int(result))
运行结果如下:
这是一个功能,为了方便使用,我们还可以将其转换为函数来实现,代码如下:
def re(number):
s=str(number)
result=""
#获取字符串长度
n=len(s)
for i in range(n):
result=s[i]+result
print(int(result))
#调用函数
re(123456)
运行效果与上图一致
2.利用纯数学的方法来进行逆序
想想看,以下代码会输出一些什么样的内容
print(56%10)
print(56//10)
print(78%10)
print(78//10)
你会发现,对于一个两位数来说,利用取整运算,可以去掉个位数,只留下十位数,利用取余运算,可以获得个位数的内容。
因此,我们可以利用取余运算,获得最右边的数字,并利用取整运去掉这个已经取走的数字,不断循环,则可以把所有的数字都取出,我们可以利用列表来对这些数字进行存储,代码如下:
target=178
result=[]
#获取长度
n=len(str(target))
#获取结果放在列表当中
for i in range(n):
number=target%10
target=target//10
result.append(number)
#打印结果
for i in range(n):
print(result[i])
运行结果如下:
当然,同样,我们也可以使用函数的方式,来简化代码,与上例相似
5.综合练习
1.函数试炼
写一个函数,这个函数有一个参数x,这里X可能是整数也可能是字符串,你的函数要能处理两种可能的情况。输出x反转后的结果。(提示可以使用type(x)的方式判断x的类型)
2.函数试炼2
写一个函数,这个函数有一个参数x,这里x可能是整数也可能是字符串,你的函数要能处理两种可能的情况。将x反转后的结果接在x后面。注意最终处理完成后x的类型不能改变。(提示:可以使用type(x)的方式判断x的类型)
2 条评论
没有内容
不难,很ok