一行打印命令
Print command writing in one line
我正在学习Python并且对打印命令有疑问。
为什么在以下情况下带有打印命令的代码在一行中工作:
text = "The vegetables are in the fridge."
print(text.replace("vegetables", "fruits"))
但是在这里,当我这样写的时候,我没有得到结果?
numbers = [12, 34, 23, 88, 1, 65]
fruits = ["apple", "pear", "orange", "grapes", "mango"]
print(fruits.extend(numbers))
正确的方法如下:
numbers = [12, 34, 23, 88, 1, 65]
fruits = ["apple", "pear", "orange", "grapes", "mango"]
fruits.extend(numbers)
print(fruits)
我的意思是,如果逻辑如下,第一个功能起作用,然后第二个起作用,那么为什么第一个功能就起作用了?
我希望我能解释一下。
先谢谢了,
莉莉丝
.extend(...)
returnsNone
。任何就地改变对象的方法 returns None
.
.replace(...)
returns 具有替换值的新字符串。
不过你可以试试这个单线
print(fruits.extend(numbers) or fruits)
#['apple', 'pear', 'orange', 'grapes', 'mango', 12, 34, 23, 88, 1, 65]
>>>fruits.extend(numbers)
None
这会改变水果
但是新值没有return
Python 字符串是 不可变的 对象,这意味着对它们执行的方法 return 新字符串。
另一方面,列表是可变的,这意味着您可以更改它们:将项目添加到列表中,更改列表中的特定项目等。这些类型的更改是就地完成的:同一个列表被更改。
通常,就地完成的方法没有return值。 fruits.extend(numbers)
没有 return 值,因为它原地更改了 fruits
。
如果之后需要使用 fruits
,将其分成两行的解决方案是好的。如果没有,您可以创建一个新列表并打印如下:
numbers = [12, 34, 23, 88, 1, 65]
fruits = ["apple", "pear", "orange", "grapes", "mango"]
print(fruits + numbers)
这是您认为它正在做的事情:
def extfruits(l1, l2):
l3 = l1 + l2
return l3
print(extfruits(fruits, numbers))
实际上是打印Method,只是在原地改变fruits的值。所以,你得到 None.
我正在学习Python并且对打印命令有疑问。
为什么在以下情况下带有打印命令的代码在一行中工作:
text = "The vegetables are in the fridge."
print(text.replace("vegetables", "fruits"))
但是在这里,当我这样写的时候,我没有得到结果?
numbers = [12, 34, 23, 88, 1, 65]
fruits = ["apple", "pear", "orange", "grapes", "mango"]
print(fruits.extend(numbers))
正确的方法如下:
numbers = [12, 34, 23, 88, 1, 65]
fruits = ["apple", "pear", "orange", "grapes", "mango"]
fruits.extend(numbers)
print(fruits)
我的意思是,如果逻辑如下,第一个功能起作用,然后第二个起作用,那么为什么第一个功能就起作用了?
我希望我能解释一下。
先谢谢了,
莉莉丝
.extend(...)
returnsNone
。任何就地改变对象的方法 returns None
.
.replace(...)
returns 具有替换值的新字符串。
不过你可以试试这个单线
print(fruits.extend(numbers) or fruits)
#['apple', 'pear', 'orange', 'grapes', 'mango', 12, 34, 23, 88, 1, 65]
>>>fruits.extend(numbers)
None
这会改变水果 但是新值没有return
Python 字符串是 不可变的 对象,这意味着对它们执行的方法 return 新字符串。
另一方面,列表是可变的,这意味着您可以更改它们:将项目添加到列表中,更改列表中的特定项目等。这些类型的更改是就地完成的:同一个列表被更改。
通常,就地完成的方法没有return值。 fruits.extend(numbers)
没有 return 值,因为它原地更改了 fruits
。
如果之后需要使用 fruits
,将其分成两行的解决方案是好的。如果没有,您可以创建一个新列表并打印如下:
numbers = [12, 34, 23, 88, 1, 65]
fruits = ["apple", "pear", "orange", "grapes", "mango"]
print(fruits + numbers)
这是您认为它正在做的事情:
def extfruits(l1, l2):
l3 = l1 + l2
return l3
print(extfruits(fruits, numbers))
实际上是打印Method,只是在原地改变fruits的值。所以,你得到 None.