鱼C论坛

 找回密码
 立即注册
查看: 1110|回复: 8

[已解决]初学者求问def的语句问题,谢谢解答

[复制链接]
发表于 2020-6-10 22:18:42 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
>>> def sayHI(name):
        print("嗨,%s" % name)

       
>>> sayHI('小甲鱼')
嗨,小甲鱼


>>> def sayHI(name):
        print("嗨,name")

>>> sayHI('小甲鱼')
嗨,name
>>>

这两个语句有什么区别吗?求问
最佳答案
2020-6-10 22:23:03
本帖最后由 Twilight6 于 2020-6-10 22:24 编辑



格式化你简单的理解就是将变量把字符串内的格式化占位符替换掉

比如你第一个函数:
def sayHI(name):
        print("嗨,%s" % name)
这里相当于 %s 被 name 替换,所以打印的结果和你输入的参数有关系

而第二个函数:
def sayHI(name):
        print("嗨,name")
你把name 写在引号内,Python 会将其视为字符串,而不是一个变量,所以不管你传入参数是 怎样的,始终打印的是:  嗨,name
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-6-10 22:21:43 | 显示全部楼层
这和def无关
第一个是格式化字符串,%s代表字符串,对应后面的name
第二个由于name包含在引号里,所以py认为它是字符串,自然就不会打印name的值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-10 22:23:03 | 显示全部楼层    本楼为最佳答案   
本帖最后由 Twilight6 于 2020-6-10 22:24 编辑



格式化你简单的理解就是将变量把字符串内的格式化占位符替换掉

比如你第一个函数:
def sayHI(name):
        print("嗨,%s" % name)
这里相当于 %s 被 name 替换,所以打印的结果和你输入的参数有关系

而第二个函数:
def sayHI(name):
        print("嗨,name")
你把name 写在引号内,Python 会将其视为字符串,而不是一个变量,所以不管你传入参数是 怎样的,始终打印的是:  嗨,name
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-6-11 07:36:40 | 显示全部楼层
本帖最后由 xiaosi4081 于 2020-6-11 18:23 编辑
def sayHI(name):
        print(f"嗨,{name}")
这样写才对
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-11 08:59:04 | 显示全部楼层


这样写是错的,你要在字符串前面加上 f 才对,f-strings格式化
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-11 10:03:09 | 显示全部楼层
引号括起来,不使用特殊方法,会被当作字符串,而不是变量
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-11 11:31:52 | 显示全部楼层
没区别,只是你写错了而已,第二个的print里的语句变成一整个字符串了。
直接
def sayHI(name):
        print("嗨",name)
# 加个逗号变元组就ok了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-15 21:39:57 | 显示全部楼层
>>> def MyfirstFunction(name):
        '函数定义过程中name是形参'
        print('传递进来的'+ name + '叫做实参,因为ta是具体的参数值!')

       
>>> MyfirstFunction('小甲鱼')
传递进来的小甲鱼叫做实参,因为ta是具体的参数值!


再次求问一下,为什么这样输入进去,第一段不会被打出来?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-15 22:02:23 | 显示全部楼层
>>> def hello():
        print('Hello--')

       
>>> hello()
Hello--
>>> print(hello())
Hello--
None
>>>

这个也想问一下,None是怎么出现的呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-20 16:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表