print34是python3x的写法_Python3.x:经常使用基础语法

Python3.x:经常使用基础语法

1,if else语句:html

不执行if内的语句,须要用:passpython

if i>2:#跳过不执行

pass

else:print("i= %s" %i)

2,日期转字符:web

importdatetimeimporttime#获取日期

begin = datetime.date(2018,1,17)#日期转字符,输出格式:2018-01-17

begin .strftime('%Y-%m-%d')

3,字符转日期:json

importdatetimeimporttime

begin= time.strptime("2018-01-18", "%Y-%m-%d")print(begin)#输出结果:time.struct_time(tm_year=2018, tm_mon=1, tm_mday=18, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=18, tm_isdst=-1)

#获取日期

y,m,d = begin[0:3]print(datetime.datetime(y,m,d))#输出结果: 2018-01-18 00:00:00

print(datetime.date(y,m,d))#输出结果:2018-01-18

#获取时间

y,m,d = end_time[3:6]print(datetime.time(y,m,d))#输出结果:00:00:00

4,日期、时间比较:数组

#日期比较#开始日期

begin = datetime.date(2018,1,10)#结束日期

end = datetime.date(2018,1,13)#循环日期间隔

for i in range((end - begin).days+1):#输出日期间隔的每一天

print(begin+datetime.timedelta(days=i))#时间比较#结束时间

end_time = time.strptime("09:00:00", "%H:%M:%S")

y,m,d= end_time[3:6]

end_time=datetime.time(y,m,d)#开始时间

now_time = time.strftime("%H%M%S")print("end_time:%s now_time:%s" %(end_time,now_time))#输出结果:end_time:09:00:00 now_time:172537

print("%s , %s" %(int(end_time.strftime('%H%M%S')),int(now_time)))#输出结果:90000 , 172537

if int(end_time.strftime('%H%M%S')) - int(now_time) <=0:break

#获取字符日期'20180110'的次日

str_date = '20180110'

#字符转日期

begin = time.strptime(str_date, "%Y-%m-%d")

y,m,d= begin[0:3]#日期加一天

r_date = datetime.date(y,m,d) + datetime.timedelta(days=1)#日期转字符

r_date = r_date .strftime('%Y-%m-%d')

5,获取当前日期:app

importdatetimeimporttimeimportlocale#获取当前时间, 其中中包含了year, month, hour, 须要import datetime

today =datetime.date.today()print(today)#输出结果:2018-01-18

print(today.year)#输出结果:2018

print(today.month)#输出结果:1

print(today.day)#输出结果:18

#得到明天, 其余依次类推

tomorrow = today + datetime.timedelta(days=1)print(tomorrow)#输出结果:2018-01-19

#使用time.strftime(format, p_tuple)获取当前时间,须要import time

print(time.strftime('%Y-%m-%d %H:%M:%S'))#输出:2018-01-28 17:33:46

now= time.strftime("%H:%M:%S")print(now)#输出结果:09:50:51

date = time.strftime("%Y%m%d")#输出结果:20180122

date = time.strftime("%Y/%m/%d")#输出结果:2018/01/22

#输出带中文的日期格式:2018年01月28日;#原理是:“在Windows里,time.strftime使用C运行时的多字节字符串函数strftime,这个函数必须先根据当前locale配置来编码格式化字符串(使用PyUnicode_EncodeLocale)。”若是不设置好locale的话,根据默认的"C" locale,底层的wcstombs函数会使用latin-1编码(单字节编码)来编码格式化字符串,而后致使题主提供的多字节编码的字符串在编码时出错。

locale.setlocale(locale.LC_CTYPE, 'chinese')print(time.strftime('%Y年%m月%d日'))#输出带中文的日期格式:2018年01月28日;#既然直接丢中文字符进去会出错,那么就绕过这个问题,丢(可能)永远不会出错的ascii字符进去充当占位符,格式化完毕后再将占位符换回中文字符。

print(time.strftime('%Y{y}%m{m}%d{d}').format(y='年', m='月', d='日'))#使用datetime.now()

now =datetime.datetime.now()print(now)#输出结果:2018-01-18 09:52:30.789292

print(now.year)#输出结果:2018

print(now.month)#输出结果:1

print(now.day)#输出结果:18

print(now.hour)#输出结果:9

print(now.minute)#输出结果:52

print(now.second)#输出结果:30

print(now.microsecond)#输出结果:789292

6,类定义、数组定义以及赋值:函数

#数组定义

list_rp =[]#实例化对象rp_entry(arf1,arg2,arg3)

rp1 = rp_entry("1","2","3")

rp2= rp_entry("3","4","5")#属性赋值必须先实例化,rp3 = rp_entry()这样写错误,必需要包含参数

rp3 = rp_entry("","","")

rp3.arg1= "7"rp3.arg2= "8"rp3.arg3= "9"

#数组赋值

list_rp.append(p1)

list_rp.append(p2)

list_rp.append(p3)#取出数组内元素

for rp inlist_rp:print(rp.arg1+" "+rp.arg2+" "+rp.arg3)#rp_entry定义

classrp_entry(object):#定义 __init__

def __init__(self, arg1,arg2, arg3):

self.arg1=arg1

self.arg2=arg2

self.arg3=arg3#定义__get__

def __get__(self, instance, cls):if instance isNone:returnselfelse:return instance.__dict__[self.name]#定义__set__

def __set__(self, instance, value):

instance.__dict__[self.name] =value#定义__delete__

def __delete__(self, instance):del instance.__dict__[self.name]

7,三目运算:post

#python并不支持? :这种符号所表达的先判断再选择的含义,但仍然有相应的语法支持

x = x+1 if x%2==1 else x

8,去掉字符串中空格:编码

#把头和尾的空格去掉

str_ =str.strip()#把左边的空格去掉

str_ =str.lstrip()#把右边的空格去掉

str_ = str.rstrip()

9,命令行参数使用(传递多个参数,参数之间用空格隔开):url

#Python 提供了 getopt 模块来获取命令行参数。#Python 中也能够所用 sys 的 sys.argv 来获取命令行参数:#sys.argv 是命令行参数列表。#参数个数:len(sys.argv)#脚本名: sys.argv[0]#参数1: sys.argv[1]#参数2: sys.argv[2]

importsysprint ('参数个数为:', len(sys.argv), '个参数。')print("脚本名:", sys.argv[0])for i in range(1, len(sys.argv)):print("参数", i, sys.argv[i])

10,字符转换:

#整数字符串转换为对应的整数

int('12')#小数字符串转换为对应小数

float('12.34')#数字转换为字符串

str(123.45)#ASCII码转换为相应字符

chr(97)#字符转换为响应ASCII码

ord('a')

11,判断是否为空:

if r_rp isNone:pass

else:print("This is not None")

12,print()输出多个参数:

#参数:end_time,now_time

print("end_time:%s now_time:%s" %(end_time,now_time))

13,判断字符串中是否包含指定字符串:

#方法一:find函数实现

str = "www.cnblogs.com"

if str.find("blog") == -1:print "No 'blog' here!"

else:print "Found 'blog' in the string"

#方法二:in 方法实现

str = "www.cnblogs.com"

if "blog" instr:print("Found 'blog' in the string")

14,获取外界参数:

#方法1:args 是运行前输入参数(不能在exe黑框中输入,能够用cmd窗口执行:shrjj.py 20180119);#方法2:input是运行时输入参数(能够在exe黑框中输入);#建议用input获取;输入多个变量:a,b,c = eval(input()),输入的时候必须用逗号隔开;

#args

if len(sys.argv) < 2:print("传递的参数错误")else:

vrg_date= sys.argv[1]print("sys.argv[1]: %s" %vrg_date)#input用法

vrg_date = input("请输入日期(格式:20180116):")print("vrg_date: %s" %vrg_date)if len(vrg_date) ==8:print(vrg_date)

15,手动结束程序

#在执行窗口按回车键,退出程序

input ("按回车键退出:")

16,追加内容写入文本文件:

#指定打开文件的模式,a为追加,r为只读,w为覆盖写入

file_object = open("E:/pydevworkspaces/product/tesetu/log_tesetu.txt", 'a+')#'\n'自动换行追加内容,还得配合打开文件模式为a+

file_object.write(log_text+'\n')

file_object.close()

17,for获取数组里面的元素:

li_list = ul.find_all('li')for i inrange(0, len(li_list)):print(li_list[i].text.replace(' ',''))

18,去掉字符串中的换行:

#利用replace替换掉换行符(/n)

str_=str_.replace('\n','')

19,获取当前py文件的目录以及上级目录:

importosprint('***获取当前目录***')print(os.getcwd())print(os.path.abspath(os.path.dirname(__file__)))print('***获取上级目录***')print(os.path.abspath(os.path.dirname(os.path.dirname(__file__))))print(os.path.abspath(os.path.dirname(os.getcwd())))print(os.path.abspath(os.path.join(os.getcwd(), "..")))print('***获取上上级目录***')print(os.path.abspath(os.path.join(os.getcwd(), "../..")))

输出结果:

***获取当前目录***E:\SublimeWorks

E:\SublimeWorks***获取上级目录***E:\

E:\

E:\***获取上上级目录***E:\

20,logging模块的用法:

importlogging#设置

logger =logging.getLogger()#set loghandler,文件在py所在的目录下

file = logging.FileHandler("yzzq_jys.log")

logger.addHandler(file)#set formater

formatter = logging.Formatter("%(asctime)s %(levelname)s %(message)s")

file.setFormatter(formatter)#set log level

logger.setLevel(logging.NOTSET)#调用

if __name__ == '__main__':

logger.info("传递参数错误,参数依次(参数之间用空格隔开)")

21,requests提交form data参数(post方式)

importrequestsfrom bs4 importBeautifulSoup

url= "http://**********/monthview.action?action=china"headerDict= {'Host': '******','User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.31 Safari/537.36','Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8','Accept-Language': 'zh-CN,zh;q=0.8','Accept-Encoding': 'gzip, deflate','Referer': 'http://**********/monthview.action?action=china','Connection': 'keep-alive'}

data= {'riqi': '2017年12月', 'channelFidStr': '4f8a220e5ca04a388ca4bae0d1226d0d', 'channelIdStr': '08ce523457dd47d2aad6b41246964535'}#psot 传递参数

res = requests.post(url,data=data,headers=headerDict)#获取跳转后的页面源码

soup = BeautifulSoup(res.content, "html.parser")

22,遍历json数组

res = requests.post(url, data=data, headers=headerDict)#获取跳转后的页面源码,返回json串

soup = BeautifulSoup(res.content, "html.parser")print(soup)#输出[{"channelName":"本月投资者状况统计表","channelId":"08ce523457dd47d2aad6b41246964535"},{"channelName":"开通创业板功能的天然人投资者状况表","channelId":"cc4707f4aa8f448a856592c8da0c9c37"},{"channelName":"开立的信用证券帐户的投资者状况表","channelId":"335db4403c8f45049a78a243550b0c44"}]#转换json格式

array =json.loads(soup.text)#遍历json数组

for city inarray:print(city['channelName'])

23,定义key-value

#定义key-value

status_process ={'name1' : '闲置期','name2' : '播种期','name3' : '生长期','name4' : '采收期'}print(status_process['name1'])#定义key-value数组

status_process =[

{'key1' : '闲置期','key2' : '播种期'},

{'name1' : '生长期','name2' : '采收期'}

]print(status_process[0]['key1']+" "+status_process[0]['key2'])

24,字符串的截取

str_s = '201801'

print(str_s[0:4])#输出:2018

print(str_s[0:4]+'年'+str_s[4:6]+'月')#输出:2018年01月

24,向上取整的方法

importmath#小数向上取整math.ceil

math.ceil(5/2)#输出结果:3

24,月份操做

#月份加减

importdatetime

date_=datetime.datetime(2016,12,17)#方案一

importdateutil

date_+dateutil.relativedelta.relativedelta(months=1)#方案二

importpandas as pd

date_+pd.tseries.offsets.DateOffset(months=4,days=5)

做者:整合侠

来源:博客园

著做权归做者全部。商业转载请联系做者得到受权,非商业转载请注明出处。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值