Python 在执行While循环时遇到问题
我正在尝试创建一个冠状病毒临时扫描比较程序。我想打开一个excel文件,每天创建一个扫描员工的小数据库。当我执行时,我只是得到第一个输入提示,我的excel电子表格没有打开。我的目标是嵌套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
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