如何在一行文本中打印输入的变量值?
在一行文本中打印变量值的正确做法
你的代码存在两处错误,同时没用到正确的变量嵌入方法:
input()函数的参数必须是字符串,你写的enter name和age没有加引号,Python会把它们当成未定义的变量,运行时会报错。print()语句里直接写print(name)是错误的,这部分会被当成普通字符串输出,而不是插入变量的值。
下面是几种可行的正确写法:
推荐:f-string(Python 3.6及以上版本)
这是最简洁易读的方式,在字符串前加f,用{变量名}把变量嵌入文本:
name = input("enter name: ") age = input("age: ") print(f"My name is {name}. I'm {age} years old.")
兼容旧版本:str.format()方法
如果用的是Python 3.6之前的版本,可以用这个方法:
name = input("enter name: ") age = input("age: ") print("My name is {}. I'm {} years old.".format(name, age))
旧式拼接(不推荐)
用+连接字符串和变量,但要注意如果变量不是字符串类型(比如age是整数),需要先转成字符串:
name = input("enter name: ") age = input("age: ") print("My name is " + name + ". I'm " + age + " years old.")
另外,如果你想把age转成整数类型(比如后续要做数值计算),可以写成age = int(input("age: ")),此时用f-string或format方法依然可以直接嵌入,不需要额外转换。
内容的提问来源于stack exchange,提问作者Kshitiz
相关产品推荐
相关产品推荐

