Python基本技能1

举报
Gere 发表于 2022/07/16 21:46:29 2022/07/16
1.2k+ 0 0
【摘要】 1、argparse介绍:argparse 是 Python 内置的一个用于命令项选项与参数解析的模块;argparse 将会从 sys.argv 中解析出这些参数,并自动生成帮助和使用信息2、argparse使用:ArgumentParser对象的相关属性。全部参数见下表:示例代码:#导入argparse模块import argparse # 创建解析器parser = argparse...

1、argparse介绍:

argparse 是 Python 内置的一个用于命令项选项与参数解析的模块;
argparse 将会从 sys.argv 中解析出这些参数,并自动生成帮助和使用信息

2、argparse使用:

ArgumentParser对象的相关属性。
全部参数见下表:
在这里插入图片描述
示例代码:

#导入argparse模块
import argparse  
# 创建解析器
parser = argparse.ArgumentParser(description='desc')  
# 添加整型参数
parser.add_argument('--integers', type=int, default=0, help='input an integer')  
# 解析参数parse_args()通常不带参数调用,ArgumentParser将自动从sys.argv确定命令行参数。
args = parser.parse_args()  
print(args)
#返回一个具有integers属性的对象 Namespace(integers=0).

源码中的add_argumrnt()方法解析:

ArgumentParser.add_argument(name or flags...,
                            action='',
                            nargs='',
                            const,
                            default,
                            type,
                            choices,
                            required,
                            help,
                            metavar,
                            dest)

add_argument(‘-f’, ‘–foo’) # 可选参数
add_argument(‘foo’) # 位置参数
action #该action关键字参数指定的命令行参数应该如何处理
action = ‘store’ # 默认操作仅存储参数的值,可以不写
action = ‘store_const’ # 将存储由const关键字参数指定的值
action = ‘store_true’ # 这些是’store_const’分别存储值True和False的情况下使用
action = ‘store_false’
action = ‘append’ # 存储一个列表,并将命令行的每个参数值附加到列表中
action = ‘append_const’ # 存储一个列表,并将const关键字参数指定的值附加到列表中,可用于多个参数需要将常量存储到同一列表,const默认参数为None
action = ‘count’ # 计算关键字参数出现的次数
action = ‘extend’ # 存储一个列表,并将每个参数值添加到列表中
nargs : 将单个命令行参数与要执行的单个操作相关联,并收集到一个列表中
nargs = N(一个整数) # nargs=2,命令行python test.py --foo a b 将a,b收集到一个列表中
nargs = ? # 表示从命令行使用一个参数,作为选项参数的值,如果命令行指定了参数的值则使用(python test.py --foo xx),如果不存在命令行参数(python test.py),使用default默认值,如果存在可选项参数(python test.py --foo),但是没有指定参数值,会使用const的值。
nargs = * # 存在的所有命令行参数都收集到一个列表中
nargs = + # 跟*用法一样,都会收集到一个列表中,但是如果没有命令行参数则会报错
default # 指定默认值
type # 指定类型 int float等
choices # 指定某些命令行参数应从一组受限制的值中选择,如果参数不是可接受的值一直,则报错
required=True # 指定参数值为必填
help #帮助信息说明

代码示例,

实现输入数字,返回指定值

import argparse

# 创建解析对象,并添加描述信息
parser = argparse.ArgumentParser(description = "输出数字2倍数") 
# 添加命令行参数“num",还有该参数的帮助信息,参数类型
parser.add_argument("num", help="2*num a given number"type = int)
# 进行解析
args = parser.parse_args()
# 实现功能
print(args.square*2)

python中时间处理主要使用的库是

datetime

1、datetime是内置模块,不需要安装,直接使用

import datetime

2、datetime里面有五个类:

  • date类:表示日期的类
  • time类:表示时间的类
  • datetime类:表示时间日期的类
  • timedelta类:表示两个datetime对象的差值;
  • tzinfo类:表示时区的相关信息

其中最常用的是datetime类,其包含了date类和time类

3、模块的使用;

datetime的简单使用

#获取当前日期
from datetime import datetime
now = datetime.now()
#获取今天
datetime.today()
#获取指定日期
datetime.date(y,m,d)
datetime.time(h,m,s)
datetime(y,m,d,h)
#输出指定格式
print('strftime():', now.strftime("%Y-%m-%d"))

timedelta的使用

from  datetime import *
now = datetime.now()
y = now + timedelta(days=-1) # 昨天
m = now + timedelta(days=1)  # 明天

4、使用案例:输出指定日期是星期几

# python3
#! coding=utf8

import datetime

year,month,day= 2022,3,15

weekday = ['周一','周二','周三','周四','周五','周六','周日']

i = datetime.date(year,month,day).weekday()
print(weekday[i])
i = datetime.date(year,month,day).isoweekday()
print(weekday[i-1])
wday = datetime.date(year,month,day).strftime('%a')
print(wday)

5、扩展,一个用来计算农历的库

zhdate
安装
pip install zhdate

实例:

#! python3
#! encoding=utf8

from datetime import datetime
import zhdate

'''
pip install zhdate
计算农历, 公历和农历的转换
内置1900-2100的农历数据
'''

date_now = zhdate.ZhDate.today()
print(date_now)

date_1 = zhdate.ZhDate(2022,1,1)
print(date_1)

date_2 = date_1.to_datetime()
print(date_2.date())

#计算距离端午节还有几天
zhdwj = zhdate.ZhDate(2022,5,5)
dwj = zhdwj.to_datetime()
now_day = datetime.now()
total = dwj.toordinal() - now_day.toordinal()
print(f'今天{now_day.strftime("%Y-%m-%d")}距离{zhdwj.chinese()}-端午节还有{total}天')

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。