无论如何在两个打印命令之间打印?例如,我打印sin(
和)
以及x
的这些括号输入量之间的某些函数,例如sin(x)
。像这样:
print("sin("
x=float(input())
print(")")
>>sin("""input""")
我需要打印sin("
然后获取输入并打印x
的值,然后打印)
。为了清楚起见我想使用print和input parallel。
答案 0 :(得分:2)
不是直接可能的,因为assignment doesn't return anything in python但如果你真的想要一点点破解。
def main():
def f():
nonlocal x
x = input()
return x
x = ''
print("Sin(" + f() + ")")
这个例子是关于如何做到这一点的想法。而不是nonlocal
你可以让其他黑客像直接传递的可变对象一样,让你更好地控制你想要存储值的位置。
通过可变对象
正如评论中提到的那样,它并不完全安全,在使用此代码之前需要进行一些更改。这只是一个例子。直到它变得很清楚OP实际上想要什么我会保持原样。
def main():
def f(x):
x[0] = input()
return x[0]
x = ['']
print("Sin(" + f(x) + ")")
EDIT2 - 在输入()的情况下避免换行的回声
如果您想避免换行,那么您应该看到this。然后根据您的要求创建一个函数,将所需的输入构建到非本地(或全局)变量中。在这里你必须做一些hackery来定义另一个完全构建变量的字符。然后使用两个print语句之间的函数调用应该给你所需的行为。函数返回的变量必须明确打印,因为不会回显任何内容。
答案 1 :(得分:0)
不,你不能这样做。每个声明都必须手动完成:
x = float(input())
print("sin(%.2f)"%x)
或者如果您想要sin
结果:
import math
x = math.sin(float(input("Enter X: ")))
print("The sin of X is: {:.2f}".format(x))
编辑:添加了您想要的内容:
正如我所提到的,你必须手动打印每个语句:
print("sin(", sep="")
#either this
x = float(input())
print(x)
#print(input()) #or just this
print(")")
注意使用两种不同的字符串格式化方法,只是为了显示它。希望这有帮助!
答案 2 :(得分:0)
这里有一些更简洁的方法 - oneliner:
print 'sin(%f)=%f' % (lambda x=input(): (x, sin(x)))()
# 1.57
# sin(1.570000)=1.000000
答案 3 :(得分:0)
你不能因为你无法在input()的末尾避免换行符。如果你真的需要这个,你应该使用像curses这样的终端控制库。