print(var1 + ' ' + (input('Enter a number to print')))
是,如果var1是一个字符串,它工作-如果不是,它崩溃:
var1 = 8
print(var1 + ' ' + (input('Enter a number to print')))
Traceback (most recent call last):
File "main.py", line 2, in <module>
print(var1 + ' ' + (input('Enter a number to print')))
TypeError: unsupported operand type(s) for +: 'int' and 'str'
你能做到的
var1 = 8
print(var1 , ' ' + (input('Enter a number to print')))
var1 = 8
# this will anyhow be printed in its own line before anyway
inp = input('Enter a number to print')
# named formatting (you provide the data to format as tuples that you reference
# in the {reference:formattingparams}
print("{myvar:>08n} *{myInp:^12s}*".format(myvar=var1,myInp=inp))
# positional formatting - {} are filled in same order as given to .format()
print("{:>08n} *{:^12s}*".format(var1,inp))
# f-string
print(f"{var1:>08n} *{inp:^12s}*")
# showcase right align w/o leading 0 that make it obsolete
print(f"{var1:>8n} *{inp:^12s}*")
不要这样做。这种格式化字符串的方法来自Python2.x,在Python3.x中有很多更好的方法来处理字符串格式化:
您的代码有2个问题:
是,如果
var1
是一个字符串,它工作-如果不是,它崩溃:你能做到的
但是你失去了格式化
var1
的能力。另外:input
在print
之前计算,所以它的文本在一行,后面是print
语句输出-为什么要把它们放在同一行呢?你知道吗更好:
输出:
迷你格式参数意味着:
也看看print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)。它有几个选项来控制输出-例如,如果给定多个对象,使用什么作为分隔符:
输出:
也许你的意思是这样的:
%s
位于引号内,指示要插入字符串的元素的位置。你知道吗相关问题 更多 >
编程相关推荐