初学者求问def的语句问题,谢谢解答
>>> def sayHI(name):print("嗨,%s" % name)
>>> sayHI('小甲鱼')
嗨,小甲鱼
>>> def sayHI(name):
print("嗨,name")
>>> sayHI('小甲鱼')
嗨,name
>>>
这两个语句有什么区别吗?求问
这和def无关
第一个是格式化字符串,%s代表字符串,对应后面的name
第二个由于name包含在引号里,所以py认为它是字符串,自然就不会打印name的值 本帖最后由 Twilight6 于 2020-6-10 22:24 编辑
格式化你简单的理解就是将变量把字符串内的格式化占位符替换掉
比如你第一个函数:
def sayHI(name):
print("嗨,%s" % name)
这里相当于 %s 被 name 替换,所以打印的结果和你输入的参数有关系
而第二个函数:
def sayHI(name):
print("嗨,name")
你把name 写在引号内,Python 会将其视为字符串,而不是一个变量,所以不管你传入参数是 怎样的,始终打印的是:嗨,name 本帖最后由 xiaosi4081 于 2020-6-11 18:23 编辑
def sayHI(name):
print(f"嗨,{name}")
这样写才对 xiaosi4081 发表于 2020-6-11 07:36
这样写才对
这样写是错的,你要在字符串前面加上 f 才对,f-strings格式化 引号括起来,不使用特殊方法,会被当作字符串,而不是变量 没区别,只是你写错了而已,第二个的print里的语句变成一整个字符串了。
直接
def sayHI(name):
print("嗨",name)
# 加个逗号变元组就ok了 >>> def MyfirstFunction(name):
'函数定义过程中name是形参'
print('传递进来的'+ name + '叫做实参,因为ta是具体的参数值!')
>>> MyfirstFunction('小甲鱼')
传递进来的小甲鱼叫做实参,因为ta是具体的参数值!
再次求问一下,为什么这样输入进去,第一段不会被打出来?
>>> def hello():
print('Hello--')
>>> hello()
Hello--
>>> print(hello())
Hello--
None
>>>
这个也想问一下,None是怎么出现的呢?
页:
[1]