Orig 发表于 2023-7-18 10:24:38

简单的python代码问题

请问代码在什么时候插入一个变量的值的时候可以用,......,(即逗号+变量名+逗号)的方式插入?
什么时候又可以用f-string方式插入?

代码如下:

times = int(3)
while times >= 1:
    temp = input(f"请输入一个数字(你还有{times}次机会):")
    user = int(temp)

(如上就不能用逗号+变量名+逗号方式插入)




若需要全部代码则如下:

import random
num = random.randint(1, 10)
answer = int(num)
times = int(3)

while times >= 1:
    temp = input("请输入一个数字(你还有{}次机会):".format(times))
    user = int(temp)                                           #也可以用f"请输入一个数字(你还有{times}次机会):"的语法
                                                               #为什么不能用,......,来插入变量的值
    if user == answer:
      print("答对了!")
      break
    else:
      if user > answer:
            times -= 1
            print("大了")
      else:
            times -= 1
            print("小了")

if times == 0:
    print("次数用完了!")

陶远航 发表于 2023-7-18 10:24:56

在 Python 中,逗号+变量名+逗号的方式可以用于插入变量值的地方主要有两个场景:

1. 在 print() 函数中使用:逗号用于分隔不同的参数,可以在多个参数之间插入变量的值。例如:print("答对了!", variable, "其他文本")。

2. 在字符串的 join() 方法中使用:join() 方法用于将多个字符串连接在一起,可以使用逗号分隔不同的字符串,并插入变量的值。例如:result = ','.join(["字符串1", variable, "字符串2"])。

至于 f-string 的方式,在 Python 3.6 版本及以上,可以使用类似于 {variable} 的语法将变量的值插入到字符串中。例如:f"请输入一个数字(你还有{times}次机会):"

根据你提供的代码,可以看出你已经正确使用了 f-string 的方式来插入变量 times 的值。在其他地方,如 print() 函数中,你可以使用逗号+变量名+逗号的方式来插入其他变量的值。

总结来说,逗号+变量名+逗号的方式主要用于 print() 函数和字符串的 join() 方法,而 f-string 则更加灵活,在各种字符串拼接的场景中都可以使用。

isdkz 发表于 2023-7-18 10:34:15

Python中的字符串插值方法包括以下三种方式:

1. 使用百分号 (%) :这是一种更旧的方式,类似于C语言的printf函数。例如, "你还有%d次机会" % times 。

2. 使用str.format():这是一个更现代的方法,允许更复杂的替换。例如, "你还有{}次机会".format(times) 。

3. 使用f-string:这是Python 3.6及以后版本中引入的最新方式,使字符串插值更加简单和可读。例如, f"你还有{times}次机会" 。

至于你提到的逗号插入变量值的方法,似乎是对Python的print函数的使用有所误解。在Python的print函数中,我们可以用逗号分隔不同的项以在控制台中打印它们,例如, print("你还有", times, "次机会") 。这里的逗号是将不同的项传递给print函数,而不是插入字符串的方式。

在你的例子中,你不能使用 , 方式插入变量,因为你正在创建一个字符串,而不是打印。这个字符串用于input函数,所以需要一个完整的字符串,而不能像print函数一样接受多个参数。因此,这种情况下,你应该使用str.format()方法或f-string方法,而不能使用 , 的方式。

总的来说,逗号在这里不是用于字符串插值的。它是用于在同一行中打印多个表达式的,而字符串插值应该使用%,str.format()方法或f-string方式。
页: [1]
查看完整版本: 简单的python代码问题