Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 范围内循环跳过_Python_Loops_Range - Fatal编程技术网

Python 范围内循环跳过

Python 范围内循环跳过,python,loops,range,Python,Loops,Range,出于某种原因,范围(0,noYears)内i的不起作用? 虽然我把noYears的答案设为3,但在完成一次之后,它会转到下一行代码 有谁知道为什么会这样,因为我看不出哪里出了问题? :)代码不工作,因为while循环从不执行。你可以用两种方法解决这个问题 使用break语句,而不是将loop设置为1: salary=0 salaryArray=[] loop=0 noYears=int(input("How many years do you want to do salari

出于某种原因,范围(0,noYears)内i的
不起作用?
虽然我把noYears的答案设为3,但在完成一次之后,它会转到下一行代码

有谁知道为什么会这样,因为我看不出哪里出了问题?
:)

代码不工作,因为while循环从不执行。你可以用两种方法解决这个问题

  • 使用break语句,而不是将loop设置为1:

        salary=0
    salaryArray=[]
    loop=0
    noYears=int(input("How many years do you want to do salaries for? "))
    for i in range(0,noYears):
        while loop==0:
            print()
            print("You can add multiple sources of income, one at a time")
            salaryType=input("Do you want to put in your salary hourly or yearly? (h/y) ")
            if salaryType=="y":
                salarySection=float(input("What is your salary? "))
                salary=salarySection+salary
            else:
                salaryHourly=float(input("What are you payed per hour? "))
                salaryWeekly=float(input("How many hours per week will you work? "))
                salaryYearly=float(input("How many weeks per year will you work? "))
                print()
                salarySection=salaryHourly*salaryWeekly*salaryYearly
                salary=salary+salarySection
            
            repeat=input("Do you wish to add another source of income? (y/n) ")
            if repeat=="n":
                print("This year's anual salary is", salary)
                salaryArray.append(salary)
                loop=1
    
  • 在for循环内将变量循环重置为0:

     #previous code
    
     repeat=input("Do you wish to add another source of income? (y/n) ")
     if repeat=="n":
         print("This year's anual salary is", salary)
         salaryArray.append(salary)
         break
    

  • 请将你的代码精简到再现问题所需的最低限度。(例如,删除所有
    输入
    语句)for循环正在工作。跳过的是while循环,因为
    loop
    仍然是1。在调用
    while
    循环之前,包括示例输入/输出以及输出与预期的不同可能会有所帮助
     for i in range(0,noYears):
         loop = 0 
         while loop==0:
         # remaining code