Python 正在尝试在print语句中用%替换普通变量

Python 正在尝试在print语句中用%替换普通变量,python,python-3.x,variables,printing,Python,Python 3.x,Variables,Printing,基本上,我正在学习一些python基础知识,没有以下问题: print(var1+“”+(输入(“输入要打印的数字”)) 现在,我尝试使用%方法打印变量的输出以及声明“youhaveenter”的字符串 除了其他代码外,您还尝试过此代码: print(%s+“”+(input('enteranumber to print'))%(var))但是在%s上出现语法错误也许您的意思是这样的: print('%s %s'%(var1, input('Enter a number to print')))

基本上,我正在学习一些python基础知识,没有以下问题:

print(var1+“”+(输入(“输入要打印的数字”))

现在,我尝试使用%方法打印变量的输出以及声明“youhaveenter”的字符串

除了其他代码外,您还尝试过此代码:
print(%s+“”+(input('enteranumber to print'))%(var))
但是在%s上出现语法错误

也许您的意思是这样的:

print('%s %s'%(var1, input('Enter a number to print')))

%s
位于引号内,指示要插入字符串的元素的位置

不要。这种格式化字符串的方法来自Python2.x,在Python3.x中有很多更好的方法来处理字符串格式化:

  • 或者也

您的代码有两个问题: 是,如果
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
的能力。另外:
输入
打印
之前进行评估,因此其文本在一行上,然后是
打印
-语句输出-为什么要将它们放在同一行

更好: 输出:

00000008 *   'cool'   *
00000008 *   'cool'   *
00000008 *   'cool'   *
       8 *   'cool'   *
1--=--2--=--3--=--4

1
2
3
4
迷你格式参数意味着:

:>08n    right align, fill with 0 to 8 digits (which makes the > kinda obsolete)
         and n its a number to format

:^12s    center in 12 characters, its a string

也来看看。它有几个选项来控制输出-例如,如果给定多个对象,将使用什么作为分隔符:

print(1,2,3,4,sep="--=--") 
print(  *[1,2,3,4], sep="\n")  # *[...] provides the list elemes as single params to print
输出:

00000008 *   'cool'   *
00000008 *   'cool'   *
00000008 *   'cool'   *
       8 *   'cool'   *
1--=--2--=--3--=--4

1
2
3
4

工作很好,有点先进,但很快就会到达:D非常感谢您的时间!这对我来说是更基本的理解。小问题,我看到print(“%s%”(var1,input('enteranumber to print'))无法编译,错误为“TypeError:在字符串格式化过程中并非所有参数都已转换”。使用%s%s而不是仅使用一个%s的效果如何。提前谢谢!使用
%s%s
尝试在字符串中插入两个元素
var1
进入第一个
%s
的位置,输入的
结果进入第二个
%s
的位置。
1--=--2--=--3--=--4

1
2
3
4