Python Coursera Assignement

时间:2016-09-11 21:15:23

标签: python

我正在尝试通过关于Courser的课程学习Python,到目前为止感觉我无法做到。

我不想要对作业给出答案,我希望有人能把我推向正确的方向。因为我卡住了,在线导师没有任何帮助,只是重复已经在作业中陈述的明显。作业非常简单,但我无法理解我所缺少的内容。

这是作业: 编写一个程序,反复提示用户输入整数,直到用户输入“完成”为止。一旦完成'输入后,打印出最大和最小的数字。如果用户输入除有效数字以外的任何内容,请使用try / except捕获它并输出相应的消息并忽略该数字。输入问题5.1的书中的数字,然后按所示匹配所需的输出。

这是我的代码,我尝试使用我们显示的示例代码来获取最小值和最大值,但问题出在我们列出的示例中,在这里我被告知我不需要列表。但是每当num的值随着新的输入而改变,如果他们没有存储,我怎么能让程序从某些数字中选择...或者你认为我可以在raw_input中输入列表?

while True:
    inpt = raw_input("Enter a number: ")
    if inpt == "done" : break

    try:
        num = int(inpt)
    except:
        print "Invalid input"
    continue

largest = None
if largest is None:
    largest = num
elif num > largest:
    largest = num

smallest = None 
if smallest is None:
    smallest = num
elif num < smallest:
    smallest = num

print "Maximum is", largest
print "Minimum is", smallest

书中的数字是4,5,7和一个单词

谢谢大家的支持,我明白我必须做什么,不知道我是否理解我将如何到达那里,但我会坐下来继续努力。同时我收到缩进问题 让我们说我重写了这样的代码,并希望在while循环中添加一个if语句

largest = None
smallest = None

while True:
    inpt = raw_input("Enter a number: ")
    if inpt == "done" : break

    try:
        num = int(inpt)
    except:
        print "Invalid input"
    continue

if语句应该以与continue相同的缩进开始,然后if的内部再次缩进吗?因为当我这样做时我得到了错误

10 个答案:

答案 0 :(得分:2)

largest = None
smallest = None
while True:
    inp = input("Enter a number: ")
    if inp == "done" : break
    try:
        num = float(inp)
    except:
        print ("Invalid input")
        continue
    if smallest is None:
        smallest=num
    if num > largest :
        largest=num
    elif num < smallest :
        smallest=num

def done(largest,smallest):
   print("Maximum is", int(largest))
   print("Minimum is", int(smallest))


done(largest,smallest)

这将正常工作。

答案 1 :(得分:1)

您正在使用当前的实施方案,但是您的运营顺序以及运营的位置存在一些问题。逐步跟踪您的程序,并尝试了解您的None任务可能导致某些问题的原因,以及其他一些小问题。

答案 2 :(得分:1)

您被要求保持最大运行和运行最小值,就像保持运行总量一样。您只需更新正在运行的&lt; whatever&gt;在循环内部,然后丢弃用户的最新输入。在运行总计的情况下,代码看起来像tot = tot + newinput,然后您可以丢弃newinput(或者,更有可能重用它),而不将其记录在列表或任何其他数据结构中。

并非每个问题都允许“运行”解决方案。例如,如果您想为用户提供撤消功能,让他们退回前面输入的一些数字,则必须保留所有数字的确切历史记录。但是在这里,你可以在不保留数据的情况下顺利通过。

答案 3 :(得分:0)

您应该检查循环内的最大和最小数字。首先检查它是否为数字 - 如果是,则继续并查看它是否大于当前function upload_to_file(){ $image_paths = array(); $target_dir = "uploads/images/"; $path = $target_dir . basename($_FILES['images']['name'][0]); if(isset($_FILES['images']['name'][0]) && $_FILES['images']['size'][0] > 0) { if (move_uploaded_file($_FILES['images']['tmp_name'][0], $path)) { $image_paths[0] = "uploads/images/"; } } return $image_paths; } 变量值(从0开始)。如果是,请更换它。看,如果它小于你的largest值(从第一个数字开始,如果你从0开始或只是一个随机数,你可能不会低于那个。如果你从第一个数字开始,然后它肯定是最小的(在所有循环之后))等等。所有这些都应该在循环内完成,循环之后应该只是打印。是的,您不需要使用列表。

答案 4 :(得分:0)

让我在这里给你一个提示,每当你的while循环接受输入时,它会将largestsmallest的值设置为None。你应该在哪里初始化它们?

答案 5 :(得分:0)

我觉得你的困惑部分源于用户期望如何提供输入。人们可以用两种方式解释说明。

  1. 用户撰写4 5 7 randomword [ENTER]

  2. 用户撰写4 [ENTER] 5 [ENTER] 7 [ENTER] randomword [ENTER]

  3. 如果它是第一个变体,那么您可能需要将整个事物作为列表处理并确定其部分

    然而,事实上他们告诉你&#34;你不需要这个练习的清单&#34;暗示他们期望第二种情况。这意味着您应该设计while循环,以便在每次迭代时它都希望从用户接收单个输入,并对其执行某些操作(即检查它是否比最后一个更大/更小)。你现在拥有的循环只会始终保持输入的最后一个输入,直到&#34;完成&#34;遇到了。

    一旦你退出while循环,你需要做的只是提供你已经如此认真收集的变量并在循环中保持更新,这就是那个问题。它

答案 6 :(得分:0)

我想出来了,如果我没有错的话,杀死我的代码就是继续声明

这是我得到的,如果我弄错了,请留下评论

var blogWithRelatedPost = new BolblogWithRelatedPost();
// your logic here for assigning value to property or LINQ query
return View(blogWithRelatedPost);

答案 7 :(得分:0)

largest = None
smallest = None
while True:
    inp = input("Enter a number: ")
    if inp == "done" : break
    try:
        num = float(inp)
    except:
        print ("Invalid input")
        continue
    if smallest is None:
        smallest=num
    if num > largest :
        largest=num
    elif num < smallest :
        smallest=num

def done(largest,smallest):
   print("Maximum is", int(largest))
   print("Minimum is", int(smallest))


done(largest,smallest)

答案 8 :(得分:0)

maximum = -1
minimum = None
while True:
    num = input('Enter the num: ')
    if num == 'done':
        break
    try:
        num1 = int(num)
    except:
        print('Invalid input')
        continue
    if minimum is None:
        minimum = num1
    if num1 > maximum:
        maximum = num1
    elif num1 < minimum:
        minimum = num1

print('Maximum is', maximum)
print('Minimum is', minimum)

答案 9 :(得分:0)

largest = None
smallest = None
while True:
    num = input("Enter a number: ")
    if num == "done" :
        break
    try:
        n=int(num)
    
    except:
        print("Invalid input")
        continue
        
    if largest is None:
        largest=n
    if n > largest:
        largest=n
    if smallest is None:
        smallest=n
    elif n < smallest:
        smallest =n

print("Maximum is", largest)
print("Minimum is" , smallest)