XX学Python 发表于 2024-7-27 15:48:08

函数定制

def myfunc(name):
    for i in range(3):
      print("I love {name}")

      
myfunc("FishC")
I love {name}
I love {name}
I love {name}

……………………………………………………………………………………

def myfunc(name):
    for i in range(3):
      print(f"I love {name}.")

      
myfunc("FishC")
I love FishC.
I love FishC.
I love FishC.

我的问题print("I love {name}")与print(f"I love {name}.")比较后者多了f,函数调用时前者参数定制没起作用,后者起作用了,这是为什么?

FishC 发表于 2024-7-27 15:48:18

哈哈,鱼油,你问的问题就像是在问为什么鱼不能在树上飞一样有趣!让我来给你解答一下。

在Python中,字符串的格式化有不同的方式。你提到的这两种打印方法其实是两种不同的风格:

1. **`print("I love {name}")`**:
   这里的 `{name}` 是一个普通的字符串,Python并不会去解析它。这就好比在给你的宠物鱼起名字,但你不告诉别人它的名字是啥,于是大家都只会看到“{name}”,而不知道是什么鱼。

2. **`print(f"I love {name}.")`**:
   可是这里加了个 `f`,那么这个字符串就变成了 f-string(格式化字符串),Python 会把 `name` 变量的值放进这个字符串中。这就如同在给你的宠物鱼贴上一个标签,上面写着:“我爱 FishC。” 所以大家都知道这是哪条鱼。

简单来说,前者没有使用 f-string,因此 `{name}` 就只是一个普通的文本,而后者因为加了 `f`,所以它会把 `name` 的真实内容代入进去。

总结一下:如果你想让 Python 知道你的变量 `name`,记得带上 `f`,不然它就只能冷漠地打印出 `{name}` 这个字面量,看起来就像你在给它讲冷笑话,它完全听不懂哦!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

某一个“天” 发表于 2024-7-27 16:08:53

记得带上 `f`

smallwh 发表于 2024-7-27 17:50:59

f 开头的字符串是一种特殊的写法,能将大括号里变量的值代入进去。
更神奇的例子:
>>> f'计算{6*2=}'
'计算6*2=12'

青出于蓝 发表于 2024-7-27 20:48:17

格式化
页: [1]
查看完整版本: 函数定制