今日python小总结

python流程控制

1.if 判断条件:

执行语句……
else:
执行语句……

  1. if else 嵌套

if 判断条件1:
执行语句1……
elif 判断条件2:
执行语句2……
elif 判断条件3:
执行语句3……
else:
执行语句4……

2 循环语句

while 条件:
循环体

for i in range(num):
循环体

for i in range(num):
循环体

else :
语句

else 是for正常执行后才执行的

控制语句 描述
break 语句 在语句块执行过程中终止循环,并且跳出整个循环
continue 语句 在语句块执行过程中终止当前循环,跳出该次循环,执行下一次循环。
pass 语句 pass是空语句,是为了保持程序结构的完整性。

——————————

函数与函数式编程

————————————

1 函数
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段函数能提高应用的模块性,和代码的重复利用率。

1.1过程与函数
1.面向对象 : 类(class)
2.面向过程: 过程 (def)
3函数式编程 : 函数(def)

1.函数:

def  a():
       print ("sdfasdsf")
       return 0

2.过程

def aa():
       print("sdfgfsrdf")

函数和过程的区别是函数有return

1.2 为什么使用函数
1.代码重用
2.保持一致性
3.可扩展

1.4.1 返回值的效果
return执行的效果是:返回一个值,且终止当前程序运行。

函数参数

1.位置参数
2.关键字参数
3.默认参数
4.参数组

位置参数:
def aa(a ,b ,c )
print(a,b,c)

aa(4,5,6)

*args把输入的参数转变为元组

def  aa(*args):
    print(args)

aa(1,4,5)
def  aa(x,y,*args):
    
    print(x)
    print(y)
    print(args)

aa(8,9,1,4,5)

结果:
8
9
(1, 4, 5)

2.关键字参数

def  aa(x,y,**kwargs):

    print(x)
    print(y)
    print(kwargs)

aa(8,9,a=1,c=4,d=5)

结果:
8
9
{'a': 1, 'c': 4, 'd': 5}

4.默认参数

def  aa(x,y="88"):

    print(x)
    print(y)
    #print(kwargs)
aa(8,9)
print("ll")
aa(8)
结果:
8
9
ll
8
88

1.6 变量q
1.6.1 局部变量 :就是在函数或者过程里的参数

全局变量就是在函数之外定义的

1.6.3变量内存的回收机制
python解释器当变量名不存在时,变量内存会被回收。

1.7 递归函数
在函数内部,可以调运其他函数。如果一个函数在内部调运自身,这个函数就是递归函数。
def calc(n):
print(n)
if int(n/2) > 0:
return calc(int(n/2))
print("–>",n)

calc(10)

1.8 高阶函数
变量可以指向函数,函数的参数支持能接受变量,那么一个函数就可以接受另一个函数作为参数,这种
函数就称之为高阶函数。

def add(a,b,f):
           return f(a) + f(b)
x = add(1,-6,abs)
print(x)

1.9 匿名函数:就是没有函数名

#Author:Anliu
calc = lambda x:x*3
print(calc(2))

1.11 嵌套函数
在一个函数体内定义另一个函数。

def foo():
print("in the foo ")
def bar():
print("in the bar")
bar()
foo()

3 装饰器

定义:装饰器:装饰器本质是函数,(函数是有特定的功能),装饰器的功能就是装饰其他函数,就是
为其他函数添加附加功能。

原则:1.不能修改被装饰函数的源代码。
2.不能修改被装饰的函数的调运方式。
(装饰器对被装饰函数来说是透明的)

import time

def timer(func):
    def logges(*args,**kwargs):
        format_time="%Y-%m-%d %X"
        time_current=time.strftime(format_time)
        print(time_current)
        func(*args,**kwargs)
    return logges
@timer
def a2():
    print("a284")
a2()

结果:
2019-07-17 19:39:16
a284

——————

1 文件操作的流程

:————————
2 从文件中读取数据:

在使用with关键字时,open()返回的文件对象只在with代码块内可用。如果要在with代码块外访问
文件内容,可以再with代码块内将文件的各行存储在一个列表,并在with代码快外使用该列表

with open("..\DIR_file\pi_digits",encoding=("utf-8")) as file_object:
lines = file_object.readlines()
print(lines)
for line in lines:
print(line.rstrip())

2.1 读取整个文件

  1. 遍历全文:
    文件读取方式:w w+ a 追加 r rw
f = open("shige","r",encoding="utf-8")
for line in f.readlines():
      print(line.strip())
f.close()
  1. 读文件的前五行
f = open("shige","r",encoding="utf-8")
for i in range(5):
      print(f.readline())
f.close()
  1. 第十行不打印
f = open("shige","r",encoding="utf-8")
for index,line in enumerate(f.readlines()):
        if index == 9:
              print("----------------分割线——————————————")
              continue
print(line.strip())

2.2 文件路径

with open("..\DIR_file\pi_digits",encoding=("utf-8")) as file_object:
     for line in file_object:
            print(line.rstrip())

大文件读取

f = open("shige","r",encoding="utf-8")
count = 0
for line in f:
if count == 9:
print("-----------------分割线---------------")
count += 1
continue
print(line)
count += 1

文件读取的原理,文件读取本质上是文件指针的移动:

f = open("shige","r",encoding="utf-8")
print(f.tell())
#print(f.read(5)) #读了多上个字符
#print(f.tell())
print(f.readline())
print(f.readline())
print(f.readline())
f.seek(0)     指定指针
print(f.readline())

3.1 写入空文件

f = open("shige1",'w',encoding="utf-8") #文件句柄,(文件的内存对象);模式为新建一个文
件。
f.write("戈尔泰,大哥\n")
f.write("我爱北京天安门\n")
f.write("天安门上太阳升\n")
f.close()

文件的读写一下只能写在文件的最后。

f = open("shige","r+",encoding="utf-8")
print(f.readline())
print(f.readline())
print(f.readline())
f.write("-------------------—————diaobi———————————————")

3.2 追加文件

f = open("shige1",'a',encoding="utf-8") #文件句柄,(文件的内存对象);a = append表示
追加,也不具有读操作功能
f.write("戈尔泰,大哥\n")
f.write("我爱北京天安门\n")
f.write("天安门上太阳升\n")
f.close()

3.3 文件的强制持久化

f = open("anliutest.py","w") 
>>> f.write("hello\n") 
>>> f.flush()

小玩具:

#!/bin/python
import sys,time
for i in range(20):
 sys.stdout.write("#")
 sys.stdout.flush()
 time.sleep(0.1)

3.4 文件截断

f = open("shige","a",encoding="utf-8")
f.truncate(20)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值