Python 正在尝试在print语句中用%替换普通变量
基本上,我正在学习一些python基础知识,没有以下问题: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')))
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