【问题标题】:Python: Specifying Start and Stop values using range()Python:使用 range() 指定开始和停止值
【发布时间】:2019-09-04 09:35:46
【问题描述】:

我编写了一个程序来评估输入字符串是否是回文。其中一部分是一个 for 循环(代码 A),它使用 range () 函数来定位变量 'a' 中的字符串字符,并创建一个新字符串 'b',它是 'a' 反转。我的 for 循环在代码 A 中运行良好,但我的初始版本(代码 B)并不成功。有什么想法为什么没有为代码 B 中的变量“b”输出变量?是因为我给 range() 函数提供了一个停止值,如果它使用默认的步长值 +1,它将永远无法达到?谢谢!

代码 A - 这行得通:)

def Code_A(a):
    b=''
    for i in range (len (a)-1,-1,-1):
        b+=a[i]
    return b

print 'Code A Output: '+ Code_A('abcdefg')

代码 B - 这不起作用:(

def Code_B(a):
    b=''
    for i in range (len (a)-1,-1):
        b+=a[i]
    return b

print 'Code B Output: '+ Code_B('abcdefg')

输出

Code A Output: gfedcba
Code B Output:

【问题讨论】:

  • 是的,B 不起作用,因为它使用默认步骤 1

标签: python range


【解决方案1】:

嗯,当然不行。

对于stop > start 的情况,如果step < 0range 将为空,如果step == 0 则为未定义,因为您无法通过添加step 的倍数从startstop

【讨论】:

    【解决方案2】:

    检查一个字符串是否是回文的一种简单方法是检查该字符串与它的倒数,如下所示:

    def is_palindrome(s):
        return s == s[::-1]
    

    我们会得到:

    is_palindrome('kayak') # True
    
    is_palindrome('city') # False
    

    注意:它并不直接回答问题,而是为回文问题提供了一个简洁的解决方案

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-21
      • 2010-12-29
      相关资源
      最近更新 更多