Python 在执行While循环时遇到问题

Python 在执行While循环时遇到问题,python,excel,while-loop,Python,Excel,While Loop,我正在尝试创建一个冠状病毒临时扫描比较程序。我想打开一个excel文件,每天创建一个扫描员工的小数据库。当我执行时,我只是得到第一个输入提示,我的excel电子表格没有打开。我的目标是嵌套while语句下的每一行代码,并继续循环,直到程序操作符结束循环。我的代码如下。感谢您的帮助 from datetime import date from xlwt import Workbook # Workbook is created wb = Workbook() # add sheet sheet

我正在尝试创建一个冠状病毒临时扫描比较程序。我想打开一个excel文件,每天创建一个扫描员工的小数据库。当我执行时,我只是得到第一个输入提示,我的excel电子表格没有打开。我的目标是嵌套while语句下的每一行代码,并继续循环,直到程序操作符结束循环。我的代码如下。感谢您的帮助

from datetime import date
from xlwt import Workbook

# Workbook is created
wb = Workbook()

# add sheet
sheet1 = wb.add_sheet('Temperature Scans')

sheet1.write(0, 0, 'First Name')
sheet1.write(0, 1, 'Last Name')
sheet1.write(0, 2, 'Date')
sheet1.write(0, 3, 'Temperature')

Normal = 98.6

Recording = input("Are you Recording Temperature Today? 1 if yes; 0 if no: ")

while Recording == 1:
    Employee_First = input("Enter First Name: ")
    Employee_Last = input("Enter Last Name: ")
    Temp = float(input("Input Scanned Temperature (Example if 99 degrees enter 99): "))
    if Temp > Normal:
            print("Elevated Temperature Detected! Entrance Not Permitted")
    else:
            print("Temperature Within Acceptable Limits. Entrance Permitted")
    Date = today.strftime("%m/%d/%y")
    for i in range(0, 15000):
            sheet1.write(i+1, 0, Employee_First)
            sheet1.write(i+1, 1, Employee_Last)
            sheet1.write(i+1, 2, Date)
            sheet1.write(i+1, 3, Temp)

            Day = today.strftime("%d")
            Month = today.strftime("%m")
            Year = today.strftime("%y")

            wb.save(Month, _ , Day, _ , Year, 'Temp Scans.xlsx')

    break

    continue

更改代码的以下内容:

Recording = input("Are you Recording Temperature Today? 1 if yes; 0 if no: ")
致:

为了确保在执行循环时输入

...
while Recording == 1:
    Employee_First = input("Enter First Name: ")
...
因为将始终返回一个字符串变量,并且在while循环中使用整数进行比较

编辑

下面是您使用库提供的代码的详细说明。下面的代码将以交互方式询问员工的名字、姓氏和温度,并最终覆盖
temperaturescans.xlsx
文件(如果该文件不存在且您第一次运行python脚本,则创建该文件)


input语句仅将输入作为字符串,您可以将其转换为不同的格式:

Recording = input("Are you Recording Temperature Today? 1 if yes; 0 if no: ")

while Recording == '1':
    # do something

Recording==1
-这永远不会是真的,因为
Recording
是一个字符串,而不是一个int.无关,但是如果您使用pandas数据帧并偶尔保存到csv文件,您可能会体验到更好的性能,而不是将每个单元格分别写入Excel@khelwood我调整了记录变量以接受作为浮点的输入,现在while循环正在执行。您是否能够通过空闲环境打开excel电子表格@bug\u spray pandas可能更适合我。我刚刚运行了我发现的第一批导入模块之一。这就是我无法打开工作簿的原因吗?感谢您提供的信息,我现在可以执行while循环了。您知道在空闲状态下执行代码时,如果代码正确,它是否会打开excel电子表格吗?我不知道这种依赖关系。无需考虑最后和:。我编辑了我的答案,添加了一个如何创建新的.xlsx文件的工作示例,在该文件中,您可以使用
openpyxl
依赖项以交互方式添加员工的名字、姓氏和温度。
from openpyxl import Workbook
from datetime import datetime

#Create workbook
wb = Workbook()

# grab the active worksheet
ws = wb.active

# Fill up the headers on the first row
ws['A1'] = 'First Name'
ws['B1'] = 'Last Name'
ws['C1'] = 'Date'
ws['D1'] = 'Temperature'

#Define some constant values
normal_temperature = 98.6
date = datetime.today().strftime('%m/%d/%y')

try:
    recording = int(input("Are you Recording Temperature Today? 1 if yes; 0 if no: "))
except:
     print('Please enter a number: either 1 or 0')

while recording == 1:
    #Get employees First Name
    employee_first = input('Enter First Name:')
    #Get employees Last Name
    employee_last = input('Enter Last Name:')
    #Get temperature
    try:
        temperature = float(input('Input Scanned Temperature (example if 99 degrees enter 99):'))
    except:
        print('Please enter a valid value for the temperature (99.2, 98.6)')
    #Check if the employee has a fever
    if temperature > normal_temperature:
        print('Elevated Temperature Detected! Entrance Not Permitted')
    else:
        print("Temperature Within Acceptable Limits. Entrance Permitted")
    #Add the employees row to the sheet
    ws.append([employee_first,employee_last,date,temperature])

    try:
        recording = int(input("Are you Recording Temperature Today? 1 if yes; 0 if no: "))
    except:
        print('All recordings have been made. Saving the file.')

#Save the file
print('Check the temperaturescans.xlsx file for the results.')
wb.save("temperaturescans.xlsx")
Recording = input("Are you Recording Temperature Today? 1 if yes; 0 if no: ")

while Recording == '1':
    # do something