【问题标题】:Using special characters with variables [duplicate]使用带有变量的特殊字符[重复]
【发布时间】:2021-03-29 21:12:26
【问题描述】:

这是我的代码:

f_name = input('First name?')
l_name = input('Last name?')
print(f_name, l_name)

我想用引号括住变量写答案(所以f_namel_name)。我的教授给我的答案是这样的:

print ("\"" + first_name + "\"" + "\t\"" + last_name + "\"") 

我不太明白的是他为什么使用“+”以及为什么他使用这么多引号。有人可以帮帮我吗?

【问题讨论】:

  • 请注意,除非他们试图不引入任何新主题,否则您的教授的解决方案并不理想。 print(f'"{first_name}"\t"{last_name}"') 更好,不需要转义引号或手动字符串连接。

标签: python python-3.x variables character


【解决方案1】:

+ 表示将对象加在一起,在这种情况下是字符串,那些\s 用于转义"s,因为如果你不使用\,那么:

print(""")

会有错误,所以你需要那些\s,但我认为有更好的方法来做你想做的事,像这样:

print('"%"\t"%"' % (f_name, l_name))

【讨论】:

  • 感谢您的快速回答!我仍然不太明白为什么 \ 后面有两个 "" 以及为什么我需要这么多 +
  • @StefanieFandl 斜线后面有两个引号,因为第一个是“斜线的一部分”。 \" 被视为单个字符。斜线是为了让 Python 知道您想要在字符串中使用引号,而不是作为语言用来指示字符串开始/结束的实际引号。第二个引号是关闭字符串文字。
  • @U11-Forward,恕我直言,通过在答案中使用旧格式来支持旧格式是不好的。
【解决方案2】:

推荐的方法是使用 f-string 或 format() 方法。

f_name = 'Jon'
l_name = 'Smith'

print(f'"{f_name}", "{l_name}"')
print('"{f_name}", "{l_name}"'.format(f_name=f_name, l_name=l_name))

【讨论】:

    【解决方案3】:
    f_name = input('First name?')
    l_name = input('Last name?')
    print("{}".format(f_name),"{}".format(l_name))
    

    【讨论】:

    • 请不要只发布代码作为答案,还要解释您的代码的作用以及它如何解决问题的问题。带有解释的答案通常更有帮助,质量更高,更有可能吸引投票。
    【解决方案4】:

    所以你需要了解的是,反斜杠“\”是一个特殊字符,通常被称为“转义”字符。这意味着反斜杠后面的字符以另一种方式解释。

    因为您希望您的名字和第二名包含在引号内,您必须使用转义字符,因为函数 print("") 使用引号。因此,当您不使用反斜杠时,Python 会认为您在此处结束字符串。

    您可以在此处找到所有 Python 转义字符的列表:https://linuxconfig.org/list-of-python-escape-sequence-characters-with-examples

    【讨论】:

    • 感谢您的快速回答!我仍然不太明白为什么 \ 后面有两个 "" 以及为什么我需要这么多 +
    • 好的,为了帮助您理解这一点,我将把函数 print ("\"" + first_name + "\"" + "\t\"" + last_name + "\"") 分解为: 1. 第一个字符串 "\"" 仅包含一个双引号 (") 2. 第二个字符串first_name 是那个参数的值。 3. 第三个字符串 "\"" 又是一个双引号 (") 等等...您可以使用字符 '+' 连接这些字符串。
    猜你喜欢
    • 1970-01-01
    • 2021-05-25
    • 1970-01-01
    • 2018-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多