如何利用python倒置所输字符串的顺序

 更新时间:2024年03月26日 14:55:58   作者:戳苏  
这篇文章主要介绍了如何利用python倒置所输字符串的顺序问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

python菜鸟一只,本文仅供自己记录,所写代码难免有猫饼,如有错误以及可以改进的地方,还请各位多多海涵,不吝赐教。

一、 目的

如题,用python将输入的字符串倒置。

倒置情况如下

1. 输入字符串(内无空格)“abcd1234”

  • 返回:“4321dcba”

2. 输入一串英文单词,进行单词内部倒置:

  • 输入:“hello world”
  • 返回:“olleh dlrow”

3. 输入一串英文单词,进行单词顺序倒置:

  • 输入:“hello world”
  • 返回:“world hello”

二、思路与方法

1. 首先明确

字符串有索引,字符串中第一个字符的索引为0,其他字符的索引按从左到右顺序依次+1

  • a b c d
  • 0 1 2 3

如果按倒序进行索引,则字符串中最后一个字符的索引为-1,其他字符的索引按从右到左的顺序依次-1

  • a   b   c   d
  • -4  -3  -2  -1

预期实现的是将【输入】的字符串反转,需要明确,我们不知道输入的字符串中一共有几个字符。

于是用到for循环,遍历字符串中字符数:

k = ""
m = 0
for i in a:
    m -= 1
    k += a[m]
print(k)

其中i是遍历的内容,但是我们不需要这些字符,于是没有用到i。m为字符串的索引。

k为空字符串,用来装倒置结果。

字符串的拼接用运算符即可。

(以上内容可以封装为一个函数,后面的内容就可以用到这个函数了)

def re(a):
    # 将输入的字符串倒置
    m = 0
    k = ""
    for i in a:
        m -= 1
        k += a[m]
    return k

2. 单词内部倒置是以“空格”为间隔进行倒置

这次需要用到两个空的字符串k1和k2。

依然用for循环进行遍历,不过这时候因为我们加了一个条件:空格

这里就要用if条件语句

即:在遇到空格之前,我的字符串要完整保留,因为这是一个完整的单词,并把字符放到空字符串中,方便字符串倒置;在遇到空格的时候我要干什么呢?

首先,k1中已经有了一个完整的单词,我需要将其倒置

于是我将k1作为参数,放在函数re中,并得到一个结果,这个结果放到另一个空字符串k2中

k2是一个字符串,单词之间要有空格,于是在k2后面再加上一个空格字符

此时k1中还放着未倒置的单词,我需要用它在后面的循环中装新的单词,旧的单词就不需要了,于是可以将k1重新赋值为空字符串

输入到这里,发现,最后一个单词的末尾没有空格,if条件句就执行了一半,最后一个单词没有倒置,也没有输出

怎么办?

此时k1中放着的是最后一个单词,再用一次re函数,并用运算符加在k2上即可

代码如下:

k1 = ""
k2 = ""
for x in w:
    if x != " ":
        k1 += x
    else:
            k2 += re(k1)
            k2 += " "
            k1 = " "
k1 = re(k1)
k2 += k1
print(k2)

3. 输入一段英文

(可以是句子,句子后面没加标点)将这段英文中的单词顺序倒置

上面两个是遍历每一个字符,将每个字符分批倒置,这次是将数量不等的字符作为一个整体变换顺序。

即:将字符串按照空格切分,形成多个字符串,并倒置字符串的顺序

问题:如何放置数量不等的字符串?

答:一个空列表

问题:列表?列表怎么输出字符串呢?

答:列表只是一个过渡的工具,按照索引来把列表中的字符串放到空字符串中,输出的也是一条字符串。但别忘了空格哦

所以创建一个函数:

def put(a):
    # 将输入字符串按照空格进行分隔,打包成列表
    k1 = ""
    k2 = []
    for i in a:
        if i != " ":
            k1 += i
        else:
            k2.append(k1)
            k1 = ""
    k2.append(k1)
    return k2

结尾依然是最后一个单词要手动添加

这样我们就可以按照之前的思路进行倒置:

sent = str(input("输入一段英文,进行句子反转:"))
sent1 = put(sent)
string = ""
m = 0
for i in sent1:
    m -= 1
    string += sent1[m]
    string += " "
print(string)

为什么没用re函数呢?

其实可以用,但是缺少了一点

re里没有在单词后面加空格。

输出的结果也就没有空格。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Python实现时间序列可视化的方法

    Python实现时间序列可视化的方法

    matplotlib库是一个用于创建出版质量图表的桌面绘图包(2D绘图库),是Python中最基本的可视化工具。这篇文章主要介绍了Python时间序列可视化实现,需要的朋友可以参考下
    2019-08-08
  • python递归计算N!的方法

    python递归计算N!的方法

    这篇文章主要介绍了python递归计算N!的方法,涉及Python递归计算阶乘的技巧,非常简单实用,需要的朋友可以参考下
    2015-05-05
  • PyTorch CNN实战之MNIST手写数字识别示例

    PyTorch CNN实战之MNIST手写数字识别示例

    本篇文章主要介绍了PyTorch CNN实战之MNIST手写数字识别示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-05-05
  • django 数据库 get_or_create函数返回值是tuple的问题

    django 数据库 get_or_create函数返回值是tuple的问题

    这篇文章主要介绍了django 数据库 get_or_create函数返回值是tuple的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • Python利用3D引擎写一个Pong游戏

    Python利用3D引擎写一个Pong游戏

    之前,我们尝试过用pygame做了一个2D的Pong游戏。本文将利用强大的3D引擎Ursina制作一个3D版的Pong游戏。文中的示例代码讲解详细,感兴趣的可以了解一下
    2023-01-01
  • Django Middleware自定义中间件及作用详解

    Django Middleware自定义中间件及作用详解

    这篇文章主要为大家介绍了Django Middleware自定义中间件示例及其作用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • PyTorch中torch.no_grad()用法举例详解

    PyTorch中torch.no_grad()用法举例详解

    这篇文章主要介绍了PyTorch中torch.no_grad()用法的相关资料,torch.no_grad()是PyTorch的上下文管理器,用于临时禁用自动梯度计算,减少内存消耗并加快计算速度,它适用于模型评估或推理阶段,可以显著提高效率,需要的朋友可以参考下
    2024-09-09
  • Python使用scipy进行曲线拟合的方法实例

    Python使用scipy进行曲线拟合的方法实例

    这篇文章主要给大家介绍了关于Python使用scipy进行曲线拟合的相关资料,Scipy优化和拟合采用的是optimize模块,该模块提供了函数最小值(标量或多维)、曲线拟合和寻找等式的根的有用算法,需要的朋友可以参考下
    2022-05-05
  • Python判断回文数的三种方法实例

    Python判断回文数的三种方法实例

    这篇文章主要给大家介绍了关于Python判断回文数的三种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • Python从数据库读取大量数据批量写入文件的方法

    Python从数据库读取大量数据批量写入文件的方法

    今天小编就为大家分享一篇Python从数据库读取大量数据批量写入文件的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12

最新评论