语法在Python上打印变量时出错

时间:2019-07-02 15:47:40

标签: python raspberry-pi

我的Python代码出现语法错误。空闲状态未提供任何提示,指出了错误的可能原因。

我正在Raspberry Pi 3上运行Python 3。

 Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
 if (authentication instanceof UsernamePasswordAuthenticationToken) {
        // Update Current user by changing tenant id in SecurityContextHolder
        UsernamePasswordAuthenticationToken currentAuth = (UsernamePasswordAuthenticationToken) authentication;

        CustomUserDetails userDetail = currentAuth.getPrincipal(); 
        customUserDetails.updateTenanet("blablalb");

        UsernamePasswordAuthenticationToken updateAuth = new UsernamePasswordAuthenticationToken(userDetail , 
            currentAuth.getCredentials(),
            currentAuth.getAuthorities());

        SecurityContextHolder.getContext().setAuthentication(updateAuth);
}

我希望输出会问我要转换多少英寸。然后,它会说出等于的厘米的值。

相反,它带有一个显示“语法错误”的窗口。没有其他信息。

4 个答案:

答案 0 :(得分:2)

正确的写法是

inches = input("How many inches?")
cm = inches*2.54
print("That is %f centimeters" % (cm))

%表示您将在此处插入一个值,该字符后跟id的字符类型将在此处插入变量,我将%f用作浮点数,也可以将%s用作字符串。

答案 1 :(得分:1)

inches = input("How many inches?")
cm = inches*2.54
print("That is" {} "centimeters.".format(cm))

答案 2 :(得分:1)

您必须在括号内加上字符串。

inches = input("How many inches?")

但这还不够,您需要一个数字来执行乘法运算符。因此,用input()覆盖浮点数或用float()覆盖整数int()

inches = float(input("How many inches?"))
# or
inches = int(input("How many inches?")) 

与python 2不同,在python 3中,print()是一个内置函数,必须将其参数放在括号内。另外,必须将括号{}放在引号中。

print("That is {} centimeters.".format(cm))

因此您的代码可能如下所示:

inches = int(input("How many inches?")) # or inches = float(input("How many inches?")) 
cm = inches*2.54
print("That is {} centimeters.".format(cm))

答案 3 :(得分:0)

仔细检查Raspberry PI上的Python版本。 F字符串是在3.6中引入的,如果您的PI像我的PI一样,默认安装的Python版本将是3.5

打印调用也需要括号,例如print()