python学习 -函数---递归--模块(os)--时间操作

#函数补充
# 位置参数 def hello (name,sex)
# 默认值参数 def hello (countyu = ‘china‘)
# def send_report(*args) 可变参数、参数组 不是必填,不限制个数,传入后保存为元组
#*args,
# 1、不是必填参数
# 2、不限制参数的个数
# 3、传入多个参数的时候他把参数放到一个元组里面
# def send_report(*args):
# print(‘发邮件‘)
# print(args)
# send_report()
# send_report(1,2,3,4)

# **args
# 1、不是必填,不限制参数个数
# 2、叫做关键字参数,默认空字典,传入多个参数把参数放入字典中
# 3、必须使用关键字调用,k=v,k1==v1
# def send_report(**kwargs):
# print(‘发邮件‘)
# print(kwargs)
#
# send_report()
# # send_report(1)
# send_report(name=‘xiaohei‘,age=18)

# 函数调用时,若使用关键字参数,后面就不能使用位置参数

# 函数传参

# def connect(ip,port,username,password):
# print(ip)
# print(port)
# print(username)
# print(password)
# info = {‘192.43.54.65‘,3318,‘root‘,‘password123‘}
# li = [‘123‘,345,654,‘bvs‘]
# s = ‘1234‘
# se = {1,2,3,4}
# connect(*li) #将数组中的数据解包,传入方法
# connect(*info) #将元组中的数据解包,传入方法中
# 元组与数据中的数据个数与方法所需参数个数要一致,否则会报错 此传参方法,除key=value方式保存的字典类型数据外均可使用
#字典使用需要使用 两个*号组合
# dic={‘port‘:3306,‘username‘:‘root‘,‘password‘:‘12345‘,‘ip‘:‘127.0.0.1‘}
# connect(**dic)
#
# 全局变量
# 如果是不可修改的全局变量 需要加global
# 如果是可修改的全局变量则不需要添加

# def test ():
# global a
# a = 5
#
# def test1():
# c = a +5
# return c
# test()
# res = test1()
# print(res)

#内置函数
import random
# print(dir(random))
# dir() 查看可调用的方法

# sorted() 排序 排序后存储一个list

# reversed()
# list(reversed(‘需要反转的对象‘)) 反转 将对象反转,返回一个list

# print(all([1,2,3,4]))#判断可迭代的对象里面的值是否都为真

# print(any([0,1,2,3,4]))#判断可迭代的对象里面的值是否有一个为真

# print(bin(10))#十进制转二进制

# print(bool(‘s‘))#把一个对象转换成布尔类型

# print(bytearray(‘abcde‘,encoding=‘utf-8‘))#把字符串变成一个可修改的bytes

# print(callable(‘aa‘))#判断传入的对象是否可调用

# print(chr(10))#打印数字对应的ascii

# print(ord(‘b‘))#打印字符串对应的ascii码

# print(dict(a=1,b=2))#转换字典

# print(dir(1))#打印传入对象的可调用方法

# print(eval(‘[]‘))#执行python代码,只能执行简单的,定义数据类型和运算

# print(exec(‘def a():pass‘))#执行python代码 实现在线变成 将代码转换成字符串传入
# s = ‘‘‘
# print(‘hello‘)
# ‘‘‘
# exec (s)

# eval() #只能执行简单的python代码 eval可以将json 转换为字典
# res = eval(‘1+1‘)
# print(res)
# f = open(‘demo.txt‘,encoding=‘utf-8‘).read()
# res = eval(f)
# print(res)
# res = eval(‘{1,2,3,4,5,6}‘)
# print(res)

# print(filter(lambda x:x>5,[12,3,12,2,1,2,35]))#循环调用函数,过滤传入的参数,函数结果返回true保存,返回false就不要
# stu_score = {‘xiaobai‘:50,‘xiaohei‘:30,‘xiaolan‘:80,‘xiaojun‘:100,
# ‘xiaoming‘:60}
# # stu_score = [60,30,50,70,99,100,67]
# result = sorted(list(filter(lambda score:score >= 60,stu_score.values())))
# print(result)

# stus = [‘aa‘,‘bb‘,‘cc‘,‘dd‘,‘ee‘]
# def add_prx(name):
# return ‘cnz-%s‘ %name
# result = list(filter(add_prx,stus))
# print(result)

# print(map(lambda x:x>5,[1,2,3,4,5,6])) map 循环调用函数,把每一次调用的返回值保存,最后返回
import random,string,os
# stus = [‘aa‘,‘bb‘,‘cc‘,‘dd‘,‘ee‘]
# def add_prx(name):
# return ‘cnz-%s‘ %name
# result = list(map(add_prx,stus))
# print(result)
# def choice(a):
# return a+1
# # map(choice,[1,2,3,4,5,6])
#
# result = list(map(choice,[1,2,3,4,5,6]))
#
# print(result)
# stus = [‘aa‘,‘bb‘,‘cc‘,‘dd‘,‘ee‘]
# # list(map(os.mkdir,stus)) #不转list不会创建
# result = map(os.mkdir,stus)
# print(result)

#匿名函数
# abc = lambda x:x+1 # 冒号前是传入参数,冒号后是返回值
# 等同于
# def abc2(x):
# return x+1
# print(abc(1))
# print(abc2(1))

#递归 自己调用自己 递归最多循环999次 递归一定要指定一个结束条件,否则会报错 效率没有循环效率高,能使用循环不使用递归
def test1():
num = int(input(‘please enter a number:‘))
if num%2==0:#判断输入的数字是不是偶数
return True #如果是偶数的话,程序就退出了,返回true
print(‘不是偶数请重新输入!‘)
return test1()#如果不是偶数的话继续调用自己,输入值
# print(test1())#调用test

# print(frozenset({1,2,3,3}))#定义一个不可修改的集合

# print(globals())#返回程序内所有的变量,返回的是一个字典

# print(locals())#返回局部变量

# print(hash(‘aaa‘))#把一个字符串哈希成一个数字

# print(hex(111))#数字转成16进制

# print(max(111,12))#取最大值

# print(oct(111))#把数字转换成8进制

# print(round(11.11,2))#取几位小数

# print(sorted([2,31,34,6,1,23,4]))#排序

# dic={1:2,3:4,5:6,7:8}
# print(sorted(dic.items()))#按照字典的key排序
# print(sorted(dic.items(),key=lambda x:x[1]))#按照字典的value排序
# __import__(‘decorator‘)#导入一个模块

# json处理
# import json
# dic = {"name":"niuniu","age":18}
# print(json.dumps(dic))#把字典转成json串
# fj = open(‘a.json‘,‘w‘)
# print(json.dump(dic,fj))#把字典转换成的json串写到一个文件里面
# s_json = ‘{"name":"niuniu","age":20,"status":true}‘
# print(json.loads(s_json))#把json串转换成字典
# fr = open(‘b.json‘,‘r‘)
# print(json.load(fr))#从文件中读取json数据,然后转成字典
#常用模块

#模块相关的知识

import os
# print(os.listdir(r‘F:\PythonWorker\day4‘)) #获取文件夹内的所有文件名
# os.path.isfile() #判断是否是文件
# os.path.isdir() #判断是否是文件夹
# os.mkdir(‘a‘) #创建文件夹
# os.makedirs(‘b‘)
# os.makedirs(‘cnz/b‘) #父目录不存在会创建
# os.mkdir(‘cnz/a‘) #父目录不存会报错
# os.rename(‘a‘,‘c‘) #重命名,a重命名为c
# os.getcwd() #获取当前所在目录
# os.chdir() #进入到哪个目录 操作文件在当前所进入的目录操作
# os.cpu_count() #获取当前电脑cup个数
# print(os.system(‘ipconfig‘)) #执行操作系统命令 只能执行系统命令,不能获取结果
# result = os.popen(‘ipconfig‘).read() #执行操作系统命令 只能执行系统命令,能获取返回结果
# print("输出结果---------------\n",result)
# os.rmdir(‘123‘)#删除文件夹(删除空文件夹)
# os.remove(‘a.txt‘) #删除文件
# os.path.getsize() #获取文件大小

# os.walk() #获取指定目录下所有文件,包括文件夹内的文件
# for cur_dir,dirs,files in os.walk(r‘F:\PythonWorker\day4‘):
# print(cur_dir) #当前文件夹
# print(dirs) #当前目录下的文件夹
# print(files) #当前目录下的文件

#指定一个目录,找到目录下有那些文件,.mp4 .avi
# 1、获取这个目录下有哪些文件 os.walk()
# 2、判断文件名是否 .mp4 .avi结尾

# def find_move(path):
# for cur_dir, dirs, files in os.walk(path):
# print(‘当前查找目录:%s‘ %cur_dir)
# for file in files:
# if file.endswith(‘.mp4‘) or file.endswith(‘.avi‘):
# print(‘目录:%s‘ %cur_dir)
# break #找到存在此类文件输出当前目录后结束查找进入下一个目录

# os.path.dirname() #获取父目录
#
# os.path.join(‘users‘,‘aa‘,‘a.txt‘) #拼接路径
#
# print(os.path.abspath(‘../day3‘)) #获取文件绝对路径
# os.path.exists() #判断文件是否存在
# print(os.path.split(‘F:\PythonWorker\day4‘)) #将路径与文件名分割,以最后一个\作为切割位置
# os.path.getmtime() #获取文件的修改时间
# os.path.getctime() #获取文件的创建时间
# os.path.getatime() #获取最近一次访问时间

#时间戳 从计算机诞生的那一天到现在过了多少秒
#格式化好的时间
import time

# print(time.strftime(‘%Y-%m-%d %H:%M:%S‘)) #获取当前时间
# print(time.time() + 60*60*24*365) #获取时间戳

# 时间戳与格式化时间互相转换
#时间元组,将时间戳转换为时间元组
# time = time.time() + (60*60*24*365)
# print(time.gmtime(time.time())) #gmtime取标准时区
# print(time.localtime(time.time()))
# times = time.localtime(time.time())
# print(time.strftime(‘%Y-%m-%d %H:%M:%S‘,times))

# 格式化与时间戳互相转换
# times = time.strptime(‘2019-09-13 18:33:55‘,‘%Y-%m-%d %H:%M:%S‘) #将格式化好的时间转换为时间元组
# print(time)
# print(time.mktime(times)) #把时间元组转化为时间戳

#格式化好的时间转时间戳的,如果不传格式化好的时间,就返回当前的时间戳
# def get_timestamp(str = None,format=‘%Y-%m-%d %H:%M:%S‘):
# if str :
# times = time.strptime(str, format)
# return int(time.mktime(times))
# return int(time.time())
#
# def timestamp_to_str(timestamp=None,format=‘%Y-%m-%d %H:%M:%S‘):
# ‘‘‘这个是把时间戳转换成格式化好的实际,如果不传时间戳,那么就返回当前的时间‘‘‘
# if timestamp:
# time_tuple = time.localtime(timestamp) # 取本地时区的时间
# return time.strftime(format, time_tuple)
# return time.strftime(format)

原文地址:https://www.cnblogs.com/huaixiaohai/p/11067689.html

时间: 2024-10-06 13:54:10

python学习 -函数---递归--模块(os)--时间操作的相关文章

python 学习笔记 13 -- 常用的时间模块之time

Python 没有包含对应日期和时间的内置类型,不过提供了3个相应的模块,可以采用多种表示管理日期和时间值: *    time 模块由底层C库提供与时间相关的函数.它包含一些函数用于获取时钟时间和处理器的运行时间,还提供了基本解析和字符串格式化工具 *    datetime 模块为日期.时间以及日期时间值提供一个更高层接口.datetime 中的类支持算术.比较和时区配置. *    calendar 模块可以创建周.月和年的格式化表示.它还可以用来计算重复事件.给定日期是星期几,以及其他基

python 学习笔记 14 -- 常用的时间模块之datetime

书接上文,前面我们讲到<常用的时间模块之time>,这次我们学习datetime -- 日期和时间值管理模块 使用apihelper 查看datetime 模块,我们可以看到简单的几项: date       ---  日期对象,结构为date(year, month, day) time       ---  时间值对象,结构为 time([hour[, minute[, second[, microsecond[, tzinfo]]]]]).时间对象所有的参数都是可选的.tzinfo 可以

Python学习系列(五)(文件操作及其字典)

Python学习系列(五)(文件操作及其字典) Python学习系列(四)(列表及其函数) 一.文件操作 1,读文件 在以'r'读模式打开文件以后可以调用read函数一次性将文件内容全部读出,也可以指定每次read读多少字节,例如: 1 #coding:utf-8 2 fn='test1.py' 3 fp=open(fn,'r') #以读的方式打开文件,文件必须首先存在和,.文件在同一目录下py 4 print 'reading pos:',fp.tell() 5 r=fp.read(20) #

Python学习之cookielib模块

cookielib是一个用于处理客户端HTTP cookie的模块 https://docs.python.org/2/library/cookielib.html?highlight=cookielib#cookielib In [191]: import cookielib,urllib2 In [192]: cj=cookielib.CookieJar() In [193]: openner=urllib2.build_opener(urllib2.HTTPCookieProcessor(

Python第二十二天 stat模块 os.chmod方法 os.stat方法

Python第二十二天   stat模块  os.chmod方法  os.stat方法 stat模块描述了os.stat(filename)返回的文件属性列表中各值的意义,根据stat模块读取os.stat()中的值的意思简单来说,os.stat是将文件的相关属性读出来,然后用stat模块来处理 os.stat 返回一个stat 结果,结果类型是posix.stat_result stat(path) -> stat result 获取stat结果 st = os.stat('/tmp/aa.p

【Python 生成器 匿名函数 递归 模块及包的导入 正则re】

一.生成器 1.定义 生成器(generator)是一个特殊的迭代器,它的实现更简单优雅,yield是生成器实现__next__()方法的关键.它作为生成器执行的暂停恢复点,可以对yield表达式进行赋值,也可以将yield表达式的值返回. 也就是说,yield是一个语法糖,内部实现支持了迭代器协议,同时yield内部是一个状态机,维护着挂起和继续的状态. yield的功能: 1.相当于为函数封装好__iter__和__next__ 2.return只能返回一次值,函数就终止了,而yield能返

Python学习总结13:os模块

os模块包含普遍的操作系统功能,与具体的平台无关.常用于处理文件和目录这些我们日常手动需要做的操作. 1. os模块函数汇总 1) os.name():判断现在正在实用的平台,Windows 返回 ‘nt'; Linux 返回’posix'     2) os.getcwd():得到当前工作的目录.     3) os.listdir():指定所有目录下所有的文件和目录名.         以列表的形式全部列举出来,其中没有区分目录和文件.     4) os.remove():删除指定文件  

Python学习之路——模块

一.模块: 模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要多个函数才能完成(函数又可以在不同的.py文件中),n个 .py 文件组成的代码集合就称为模块. 如:os 是系统相关的模块:file是文件操作相关的模块 模块分为三种: 自定义模块 内置模块 开源模块 二.导入模块: import module from module.xx.xx import

Python学习:9.模块的安装以及调用模块

什么是模块 在Python中,模块其实也就是包含python代码的文件,我们为什么要使用模块?在我们以后写代码的时候,我们会发现有很多功能需要经常使用,那我们想要使用这些功能怎么办,要再把那些代码在敲一遍吗,这样不但增加了代码量,还浪费了时间,有人说我们可以写在函数里,是的,我们可以把一些功能写在函数里,使用的时候调用函数就行了,但是我们每次新建一个文件的时候,都需要再次将那些功能函数写一遍,还是有些麻烦,这时候,模块的便捷就体现出来了,我们将大量功能函数写在一个py文件里,当我们需要用到部分功