我可以在python的字符串中放置输入吗?

时间:2020-10-01 09:50:24

标签: python python-3.x string input

我正在尝试在python的字符串中放置输入。

例如,控制台将显示“我今年___岁”,输入值将使句子完整。有办法吗?

4 个答案:

答案 0 :(得分:1)

不确定您想要什么。如果只希望将输入放入该字符串中,则可以使用新的格式字符串(或仅使用str.format%运算符):

age = input("What is your age? ")
print(f"I am {age} years old")

如果您的字符串实际上具有该___部分,并且您想在其中插入年龄,则可以先用适当的格式符号替换该年龄,然后使用format

import re
s = re.sub("_+", "{}", "I am ___ years old")
print(s.format(age))

如果按照注释中的某些建议,实际上您可能希望用户在键入时填写空白,则可以先打印该行,然后使用\rflush返回到开头,然后要求输入,覆盖同样多的内容,以使输入光标位于___部分。

print("I am ___ years old", end="\r", flush=True)
age = input("I am ")
print(age)

答案 1 :(得分:1)

使用console ANSI escape chars和模块ansicon的另一种解决方案(需要通过python -m pip install ansicon安装),除了移动光标之外,它还可以提供诸如着色之类的漂亮功能。该模块将在Unix和Windows系统中均可使用。即使没有此模块,Unix本身也支持转义字符。

# Needs: python -m pip install
import ansicon
ansicon.load()

age = int(input('I am ___ years old' + '\x1b[D' * 13))
print('Your age is:', age)

使用转义字符可以完成很多事情,例如使用下一行代码将单词years涂成绿色:

age = int(input('I am ___ \x1b[32myears\x1b[m old' + '\x1b[D' * 13))

输出:

img

Unix系统根本不需要任何模块,因此代码可以只有两行,您可以can see and try here online!

可以通过下一个代码轻松打印标准颜色集的颜色表,这些数字应放在上面的代码32中,而不是\x1b[32m

for first, last in [(30, 47), (90, 107)]:
    for color in range(first, last + 1):
        print(f'\x1b[{color}m{str(color).rjust(3)}\x1b[m ', end = '')
    print()

输出:

enter image description here

答案 2 :(得分:0)

这应该可以解决您的问题。

df_list = []
for f in files:
   df_list.append({
      "filename": f,
      "df": pd.read_csv(f)
   })

答案 3 :(得分:0)

user_input = ("how old are you ? : ")
print("you are ",user_input"," this old !")
相关问题