Python- While循环与错误处理

时间:2018-01-22 20:09:15

标签: python

在学习python的同时,我一直在阅读循环。以下工作没有错误,但是如果我将16作为值插入,我会得到

Insert numbers only
Your weight is 16 lbs

这不正确

while True:
    weight_input = raw_input ("Add your weight: ")+(" lbs")
    try:
       val = int(weight_input)
    except ValueError:
        print("Insert numbers only")

    print("Your weight is " + weight_input + "!")

我错过了什么?我试图打印出重量,如果值=其他任何整数然后发送错误。

更新

决定使用上面的表格。我在添加"lbs"任何帮助时收到错误消息? print(tabulate([[weight_input]+"lbs"], tablefmt='pipe', headers=('Weight')))

3 个答案:

答案 0 :(得分:5)

您要将" lbs"添加到生成变量weight_input "16 lbs"的输入中。你可以添加" lbs"在循环结束时显示的消息:

while True:
    weight_input = raw_input ("Add your weight: ")
    try:
       val = int(weight_input)
    except ValueError:
        print("Insert numbers only")

    print("Your weight is " + weight_input + " lbs!")

答案 1 :(得分:3)

当你这样做时

weight_input = raw_input ("Add your weight: ")+(" lbs")

您正在将+(" lbs")添加到输入字符串中。尝试删除它。

答案 2 :(得分:1)

您必须首先删除raw_input的预告片= (" lbs"),然后通过.isdigit()检查输入是否是一个数字。

library(dplyr)  
df <- tibble(
        id = c("A", "A", "B", "C", "C", "D"), 
        protocol = c("X", "Y", "X", "X", "X", "Y"),
        date = c(seq(as.Date("2018-01-01"), as.Date("2018-01-06"), 
                 by="days")),
        var = 1:6)