小作业一的细节|python

123 阅读2分钟

作业内容:实现按格式输出文本

image.png

背景:一位同学问我为什么代码报错,代码如下图

image.png

解决过程

过程一

正解

注意运行结果中报错说明错误出现在第4行。 检查第4行,发现是第4行的缩进不符合python的语法规范,所以报错。

只需要 去掉缩进 就可以运行成功

歧路

刚开始我没注意 报错 和 print(sentence) 的缩进,以为是sentence赋值时出的错。

理由(虽然是错误的)

首先,在python中,'()'小括号 可以用来创建元组(元组的定义请自行查阅),且按引号的匹配原则,小括号内的元素是不会直接成为单一字符串的。所以我以为这里会被python解释器理解为是在创建一个有三个元素的元组。

而元组中的元素需要用逗号隔开,所以我选择了在元素中间加上逗号。但这样一来,要获取其中的元素,就需要迭代这个元组,变得更为麻烦。

过程二

有趣的是,这位同学给我看了她另一个能运行的程序。如下图:

image.png

这下我就更搞不明白了,为什么多一个反斜杠就可以了,第四行也没有报错了。我自己试了一下,是会报错的

image.png 但是它让我开始想,既然这样(虽然不知道是不是真可以)就可以,那我之前的想法就是错的。 我重新看了一遍上一个代码,才发现没有缩进。 呣,调试一下,果然运行成功了,那么事情就越来越离谱了。。。

经过查阅资料,我发现 妙~ 啊~

  • 关于 反斜杠 ' \ ':虽然我不知道它在这是怎么起作用的,但是我知道了它的一个作用 续行符,在网上找了个例子
   new_os = 'huawei' \
            'HarmonyOS' \
            ' is coming'
   print(new_os)
   
   >>> huaweiHarmonyOS is coming

  • 关于 '引号' : 相邻的字符串字面值会自动连接在一起,不需要使用任何操作符
result = 'Hello, ' 'world!' print(result)
# 输出:Hello, world!
  • 关于 元组的创建: 如果只有元组中单个元素,需要在元素后面加上 逗号!!!不然小括号就只是个小括号。
num = (10)
num_tuple = (10,)
print(type(num)) #<class 'int'>
print(type(num_tuple)) #<class 'tuple'>

str = ('yes')
str_tuple = ('yes',) 
print(type(str)) #<class 'str'>
print(type(str_tuple)) #<class 'tuple'>

也就是说,这里的小括号根本没得实际作用,只是为了代码在排版上有更好的可读性,栓q。。。

算是我不熟悉基础知识吃的瘪吧O.O