【问题标题】:Can I write a code like this? Is it a bad writing? [duplicate]我可以写这样的代码吗?是不是文笔不好? [复制]
【发布时间】:2021-04-14 12:09:45
【问题描述】:

基本上,我想互相更改字符串中的第一个和最后一个字母: 从“索尼克”到“康尼斯” 我看到了这样的解决方案:

def first_last(string):
    if len(string) <= 1:
       return string
mid = string[1:len(string)-1]
return string[len(string)-1] + mid + string[0]

但我写的有点不同,因为我的对我来说更简单:

def first_last(string):
    if len(string) <= 1:
       return string
    mid = string[1:-1]
    return string[-1] + mid + string[0]

我的代码有问题吗?

【问题讨论】:

  • 您有任何个问题的证据吗?
  • 没问题。事实上它更好。我会放弃mid 并写return string[-1] + string[1:-1] + string[0]。当然,这两种解决方案都没有改变大小写。
  • 有效吗?你自己能理解吗?如果两者都是,那么不清楚是什么问题。
  • 您永远不会对大写进行任何操作-另请参阅@Matthias 解决方案-第一个解决方案中的 IndentationError 也是如此
  • 您可以写得更短:return string[-1] + string[1:-1] + string[0] 并删除 mid = string[1:-1]

标签: python function


【解决方案1】:

大多数编码人员不会认为这是“坏事”。将字符串切片 string[1:-1] 分配给变量 mid 的唯一原因是提高可读性。并且可读性很重要!

如果您有一个较长的函数多次使用 mid 变量,则此变量分配可能会更有用。此时,您可能需要考虑将string[0]string[-1] 也分配给它们自己的变量。

【讨论】:

  • 谢谢大佬,我现在明白了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-09
相关资源
最近更新 更多