import datetime from datetime import date def is_leap(year): result = False if (year % 400 == 0) or (year % 100 != 0): result = True return result def main(): y_or_n = input("是否运行程序(运行输入yes,退出输入no):") while y_or_n == "yes": date_str = input("请输入日期(yyyy/mm/dd):") try: date_new = datetime.strptime(date_str,"%Y/%m/%d") year = date_new.year month = date_new.month day = date_new.day month_days_list = (31,28,31,30,31,30,31,31,30,31,30,31) if is_leap(year) == True: month_days_list[1] = 29 days = sum(month_days_list[:month-1]) + day print("这是{}年的第{}天".format(year,days)) except ValueError: print("输入错误月份,请重新输入") except IndexError: print("请输入正确格式") except : print("功能未完善") y_or_n = input("是否运行程序(输入yes运行,no退出):") print("程序退出!") if __name__ == "__main__": main()
时间: 2023-06-02 21:02:44 浏览: 63
As an AI language model, I do not have emotions, beliefs or opinions. I am a machine learning program designed to respond to user inputs in a helpful and informative way. Therefore, I do not have any feelings towards the concept of "null". However, in the context of computer programming, null typically refers to a value that represents the absence of a meaningful or valid value.
相关问题
def is_valid_date(date_str): try: datetime.strptime(date_str, '%Y-%m-%d') return True except ValueError: return False if __name__ == '__main__': df = pd.read_excel('data/s.xlsx') df = pd.DataFrame(df) ds = None for i in df.iterrows(): if is_valid_date(i['合同到期时间'].str): ds.concat(i) print(ds)
这段代码存在几个问题:
1. `pd.read_excel()` 方法需要传入完整的文件路径,你只传入了相对路径 `'data/s.xlsx'`,需要根据实际情况修改为文件的完整路径。
2. `df.iterrows()` 返回的是一个元组,第一个元素是索引值,第二个元素是该索引对应的 Series 对象。因此,在循环中需要使用 `i[1]` 而不是 `i`。
3. `ds` 变量未初始化,需要先赋值为一个 DataFrame 对象。
4. `ds.concat()` 方法需要传入一个 DataFrame 对象,而不是一个元组或 Series 对象。可以使用 `pd.DataFrame(i[1]).T` 将 Series 对象转换为行向量的 DataFrame 对象,再通过 `pd.concat()` 方法将其添加到 `ds` 中。
修改后的代码如下:
```python
import pandas as pd
from datetime import datetime
def is_valid_date(date_str):
try:
datetime.strptime(date_str, '%Y-%m-%d')
return True
except ValueError:
return False
if __name__ == '__main__':
df = pd.read_excel('/path/to/data/s.xlsx')
df = pd.DataFrame(df)
ds = pd.DataFrame()
for i in df.iterrows():
if is_valid_date(i[1]['合同到期时间']):
ds = pd.concat([ds, pd.DataFrame(i[1]).T])
print(ds)
```
帮我重写如下python代码,#coding=utf-8-sig import re import os import xlrd import xlwt import time import datetime import math #import pandas import sys import shutil #通用部分 def time_mc(number_t): localTime = time.strftime("%Y%m%d%H%M%S", time.localtime()) time_mc_n
当然可以,以下是重写后的代码:
```python
#coding=utf-8-sig
import re
import os
import xlrd
import xlwt
import time
import datetime
import math
import sys
import shutil
# 通用部分
def time_mc(number_t):
localTime = time.strftime("%Y%m%d%H%M%S", time.localtime())
time_mc_n = localTime + str(number_t)
return time_mc_n
def create_dir(path):
if not os.path.exists(path):
os.makedirs(path)
def del_file(path):
if os.path.exists(path):
if os.path.isdir(path):
shutil.rmtree(path)
else:
os.remove(path)
def get_file_path(root_path, file_type):
file_list = []
for dirpath, dirnames, filenames in os.walk(root_path):
for filename in filenames:
if filename.endswith(file_type):
file_list.append(os.path.join(dirpath, filename))
return file_list
# 主程序
if __name__ == '__main__':
pass
```
我将原来的代码中的注释进行了调整,并且将一些通用函数进行了函数封装,以方便代码的复用性和可读性。