【发布时间】:2015-09-14 15:43:28
【问题描述】:
我遇到了一些 while 循环 问题。我的目标是在用户输入负值 3 次时使 while 循环结束。问题是当我收到第三条消息时,它并没有像它应该的那样以“milesLoop”结尾 (我尝试使用一个循环,但我想使用多个循环进行测试) 这可能是一个容易解决的问题,但我被卡住了。
这是python代码:
__author__ = 'MichaelCorbett'
import sys
print('Michael Corbett converter ')
print('\n')
milesLoop = 1
fhietLoop = 1
gallonLoop = 1
poundsLoop = 1
inchesLoop = 1
while milesLoop == 1:
miles = float(input('What\'s up Will, how many miles do you wish to convert to Kilometers? '))
if miles < 0:
print('This converter does not accept negeative values. Try again!')
miles = float(input('What\'s up Will, how many miles do you wish to convert to Kilometers? '))
if miles < 0:
print('This converter does not accept negeative values. Try again')
miles = float(input('What\'s up Will, how many miles do you wish to convert to Kilometers? '))
if miles < 0:
print('This converter does not accept negeative values. Program is Terminated')
milesLoop = 2
while fhietLoop == 1:
Fheit = float(input('What temperature is it outside in Fahrenheit? '))
if Fheit < 0 and Fheit > 1000:
print('This converter does not accept negeative values.')
Fheit = float(input('What temperature is it outside in Fahrenheit? '))
if Fheit < 0 and Fheit > 1000:
print('This converter does not accept negeative values.')
Fheit = float(input('What temperature is it outside in Fahrenheit? '))
if Fheit < 0 and Fheit > 1000:
print('This converter does not accept negeative values. Program is Terminated')
fhietLoop = 2
while gallonLoop == 1:
gallon = float(input('How many gallons are you trying to convert? '))
if gallon < 0:
print('This converter does not accept negeative values.')
gallon = float(input('How many gallons are you trying to convert? '))
if gallon < 0:
print('This converter does not accept negeative values.')
gallon = float(input('How many gallons are you trying to convert? '))
if gallon < 0:
print('This converter does not accept negeative values. Program Terminated')
gallonLoop = 2
while poundsLoop == 1:
pounds = float(input('How many pounds would you like to convert? '))
if pounds < 0:
print('This converter does not accept negeative values.')
pounds = float(input('How many pounds would you like to convert? '))
if pounds < 0:
print('This converter does not accept negeative values.')
pounds = float(input('How many pounds would you like to convert? '))
if pounds < 0:
print('This converter does not accept negeative values. Program Terminated')
poundsLoop = 2
while inchesLoop == 1:
inches = float(input('How many inches would you like to convert? '))
if inches < 0:
print('This converter does not accept negeative values.')
inches = float(input('How many inches would you like to convert? '))
if inches < 0:
print('This converter does not accept negeative values.')
inches = float(input('How many inches would you like to convert? '))
if inches < 0:
print('This converter does not accept negeative values. Program Terminated')
inchesLoop = 2
# Calculations
kilometers = miles * 1.6
celsius = int((Fheit - 32) * 5/9)
liters = gallon * 3.9
kilograms = pounds * .45
centimeters = inches * 2.54
# Output
print('\n')
print(miles, ' miles is ', kilometers, ' Kilometers')
print('Its is ', celsius, 'Celsius outside.')
print(gallon, ' gallons is ', liters, ' liters')
print(pounds, ' pounds is ', kilograms, ' kilograms')
print(inches, ' inches is ', centimeters, ' centimeters')
【问题讨论】:
-
哇,你现在可能想重组你的代码,为什么?因为它嵌套得像疯了一样,你甚至无法调试由简单的
ifs 和whiles 组成的自己的代码 -
这是相当多的代码,需要大量复制(例如使用每个
if语句三次),请将其缩小到重现此错误的最少代码。 -
当用户预先输入一个正值时,您认为您的代码会做什么?
-
import this(第 5 行)
标签: python if-statement while-loop