python

时间:2019-03-30 06:26:37

标签: python printing

我正在关注制作文字冒险的在线指南。

他们有一个类似以下的动作:

<p>def you_quit(why):</p>
<p>       print(f"{why}. You_quit!") </p>
<p>       exit(0)  </p>

但是当我去运行程序时,我得到了一个无效的语法错误,小胡萝卜指向了第二个引号。像这样:

<p>print(f"{why}. You_quit!") </p>  
<p>------------------------------------^</p>

我一直在摆弄,但是到了这一行时,如果没有混乱的代码,我就无法运行代码。我几乎肯定地说,它与f有关,但指南并未说明f的目的。

任何帮助将不胜感激,如果格式混乱,我正在移动设备上。抱歉。

2 个答案:

答案 0 :(得分:0)

Def更改为def,不要忘记 Python 中的缩进(四个空格)。

将代码更改为此:

def so(why):
    print(f"{why}.You quit!")
    exit(0)

运行它!
要运行它,请写:

so("You didn't try!")

此处将值设置为why

输出:

  

您没有尝试!你辞职了!

答案 1 :(得分:0)

您似乎使用的版本与指南使用的版本不同。显然,该指南使用的是Python 3.6或更高版本,并且由于您使用的是Mac,因此您使用的是Python 2.7。根据{{​​3}}的帖子,您使用的版本可能是Python 2.7.10(而不是您在评论中所说的2.10)。

要解决您的问题,您需要使用安装Python3。您可以使用this安装Python 3。

brew install python3

安装后,您可以使用以下代码运行代码

python3 <your-script>.py

但是,如果您打算保留使用Python 2(自Homebrew开始不推荐使用),则必须使用Python 2.7 will only have a few months left of support中讨论的经典字符串格式化工具。


您在评论中问

  

'f'的目的是什么?在较早的版本中它替换了什么?

TL; DR:f字符串提供了一种更简单的格式化字符串的方式。它不会替代以前的字符串格式化工具。

f-strings 来自Yash's answer。它允许以尽可能少的语法将表达式嵌入字符串文字中。简而言之,它只是格式化字符串的另一种方式,但具有在这些字符串中运行表达式的额外好处。您可以通过在字符串文字前加上f来定义f字符串。

例如,您想要计算三角形的面积并打印出来。在3.6之前的版本中,您会做类似

的操作
print('Area of a triangle: {}'.format((base * height) / 2))

使用f弦,您可以使用

print(f'Area of a triangle: {(base * height) / 2}')

简单多了!

本质上,f字符串只是提供了一种更简单的字符串格式设置方式。 PEP还声明它不打算替换%格式和format()。我认为这是为了向后兼容。

相关问题