Python新手。谁能给我解释一下这行代码吗?

Python新手。谁能给我解释一下这行代码吗?,python,Python,所以我是Python新手,我正在学习我购买的Python课程,他们有一个小测验。最后一个问题是打印字符串的最后6个字母。代码如下: welcome_message = "Hello and welcome to the land of Python" print(f"The last 6 letters of the welcome message:\n'{welcome_message}'\nare: '{welcome_message[len(welcome_

所以我是Python新手,我正在学习我购买的Python课程,他们有一个小测验。最后一个问题是打印字符串的最后6个字母。代码如下:

welcome_message = "Hello and welcome to the land of Python"

print(f"The last 6 letters of the welcome message:\n'{welcome_message}'\nare: '{welcome_message[len(welcome_message)-6:]}'")
然后,输出将是:

The last 6 letters of the welcome message:
'Hello and welcome to the land of Python'
are: Python
这是来自解决方案。我不明白这里发生了什么:
“{welcome\u message[len(welcome\u message)-6::][code>

我不明白为什么解决方案包含
len()
函数

为什么我不能只做
{welcome_message[-6:}
'

您也将获得相同的输出。 在python-1中,索引与上一个索引相同,当它为空时,表示开始或结束,这取决于您将它放在哪里。例如

welcome_message[:]
将打印整个字符串

至于你的问题,你可以使用
welcome\u message[34:][/code>,而不是把自己算在内,更好的写作方式是
welcome\u message[len(welcome\u message)-6:][/code>。
但是一个更好的写作方式是你指出的解决方案,即,

welcome\u message[-6::][/code>

您也将获得与此相同的输出。 在python-1中,索引与上一个索引相同,当它为空时,表示开始或结束,这取决于您将它放在哪里。例如

welcome_message[:]
将打印整个字符串

至于你的问题,你可以使用
welcome\u message[34:][/code>,而不是把自己算在内,更好的写作方式是
welcome\u message[len(welcome\u message)-6:][/code>。
但是一个更好的写作方式是你指出的解决方案,即,
欢迎信息[-6:][/code>

打印(f“欢迎留言的最后6封信:\n'{欢迎留言}'\n地址:{欢迎留言[len(欢迎留言)-6:::}')

下面是正在发生的事情欢迎消息是一个变量,可以有无限个字母/字符/数字/符号/字符串等。。系统不知道的第一手资料。。。 所以欢迎消息[len…]首先查找字符串中有多少个字符,而不是单词。。。我之所以说字符,是因为我们为
len()
函数提供了welcome\u message变量,该变量只有一个字符串。。。到目前为止,我希望我能解释到底发生了什么
{welcome\u message[len(welcome\u message)]}
然后它只是从
len()返回的计数中进行的简单的-6算术运算

打印(f“欢迎留言的最后6封信:\n'{欢迎留言}'\n地址:{欢迎留言[len(欢迎留言)-6:::}')

下面是正在发生的事情欢迎消息是一个变量,可以有无限个字母/字符/数字/符号/字符串等。。系统不知道的第一手资料。。。 所以欢迎消息[len…]首先查找字符串中有多少个字符,而不是单词。。。我之所以说字符,是因为我们为
len()
函数提供了welcome\u message变量,该变量只有一个字符串。。。到目前为止,我希望我能解释到底发生了什么
{welcome\u message[len(welcome\u message)]}
然后它只是从
len()返回的计数中进行的简单的-6算术运算

  • 这里的welcome_消息存储的字符串是“Hello and welcome to the land of Python”
  • 在打印时,如果我们将
    \n
    添加到字符串中,它将在应答中输出一个换行符
  • len(欢迎信息)-6=39-6=33
  • 在字符串切片
    s[i://code>中,它将以字符串的形式给出输出,其中包括从
    i
    到字符串末尾的字符
  • 因此,
    welcome\u message[len(welcome\u message)-6::
    将输出索引33到39的字符
  • 请记住,
    也是字符串的一个字符
  • 这里的welcome_消息存储的字符串是“Hello and welcome to the land of Python”
  • 在打印时,如果我们将
    \n
    添加到字符串中,它将在应答中输出一个换行符
  • len(欢迎信息)-6=39-6=33
  • 在字符串切片
    s[i://code>中,它将以字符串的形式给出输出,其中包括从
    i
    到字符串末尾的字符
  • 因此,
    welcome\u message[len(welcome\u message)-6::
    将输出索引33到39的字符
  • 请记住,
    也是字符串的一个字符

  • “为什么我不能只做{welcome_message[-6::}}”?”-你可以。并非所有找到的代码都是好代码。
    len
    是字符串的长度。所以你要打印从长度-6到字符串末尾的所有内容,换句话说,最后6个字符。你可以两种方式都可以。是的,你可以这样做,有多种方式编码同一件事,根据经验,一个人可以编写干净简单的代码。“为什么我不能只做{welcome_message[-6:]}?”-你可以。并非所有找到的代码都是好代码。
    len
    是字符串的长度。因此,你正在打印从长度-6到字符串末尾的所有内容,换句话说,最后6个字符。你可以两种方式都可以。是的,你可以这样做,有多种方式编码同一件事,根据经验,一个人可以编写干净简单的代码。啊,我现在完全明白了。基本上是39-6。39来自len()函数,-6来自最后六个字母。谢谢确切地
    len()
    是Python开箱即用提供的内置函数之一,这里是此类函数的完整列表,我认为您应该随时准备好。。。另外,如果我的答案为您提供了解决方案,请将其标记为答案,这对StackOverflow很有帮助啊,我现在完全明白了。基本上是39-6。39来自len()函数,-6来自最后六个字母。谢谢确切地
    len()
    是Python开箱即用提供的内置函数之一,这里是此类函数的完整列表,我认为您应该随时准备好。。。如果我的回答给你提供了一个