3.Python基础语法

2020-09-07  本文已影响0人  info_gu

基本数据类型

image.png

如何判断XX的类型

type(xx)

数据类型转换

int(X)
str(123)
bool(123) -->true

序列的概念:

image.png

切片

字符串的定义和使用

字符串的常用操作

image.png

列表的定义和常用的操作

增: append
删:remove

条件语句

循环语句

image.png
#打印结果1-12
for i in range(1,13):
  print(i)

%s和%d替换

print('%s 年的生肖是 %s' %(year,year%12))

while循环

#死循环
while True:
    print ("xxx")

break终止循环

continue跳过循环

列表推导式与字典推导式

#求1到10所有偶数的平方
list=[]
for  i in range(1,11){
  if i%2==0:
  list.append(i*i) 
}
#列表推导式
list=[i*i for  i in range(1,11) if i%2==0]

二个list完全一致

字典推导式

dict={}
for key in dict:
  dict[key]=0

#字典推导式
dict={key:0 for i in dict }

文件的内建函数

image.png
#写入内容
file1=open("name.txt","w")
file1.write("诸葛亮")
file1.close()


#读取内容
file1=open("name.txt")
content=file1.read()
print(content)
file1.close()

#增加
file1=open("name.txt","a")
file1.write("赵云")
file1.close()

如果文件有多行?如何读取其中一行内容?

#读取一行
file4=open("name.txt")
line_content=file4.readline()
print(line_content)
file4.close()
#逐行处理
file4=open("name.txt")
for line in file4.readlines():
    print(line)
file4.close()

Python中with语句

使用 with 语句操作文件对象
with open(r'somefileName') as somefile:
        for line in somefile:
            print line
            # ...more code


这里使用了 with 语句,不管在处理文件过程中是否发生异常,都能保证 with 语句执行完毕后已经关闭了打开的文件句柄。如果使用传统的 try/finally 范式,则要使用类似如下代码:

清单 3. try/finally 方式操作文件对象
somefile = open(r'somefileName')
    try:
        for line in somefile:
            print line
            # ...more code
    finally:
        somefile.close()

异常的检测和处理

函数的迭代器和生成器

函数的可变长参数

def fuc1(frist,*other):
    print(1+len(other))
fuc1(23,123)

函数的关键字参数

lambda表达式

#定义个函数返回True
#例子1:
def true():
    return Ture
true()

等同于
lambda :True


#例子2带参数
def add (x,y):
  return x+y
等同于
lambda x,y:x+y

内置函数

filter() ,map(), reduce(),zip()

filter()

作用:把满足条件的数据按照指定function过滤出来
filter(function or None, iterable)

例子:
list1 =[1,2,3,4,5,6]
print(list(filter(lambda x:x>2,list1)))

map()

作用:把传入的数据进行处理
 map(func, *iterables)

例子:
list1=[1,2,3]
list2=[1,2,3]
print(list(map(lambda x,y:x+y,list1,list2)))

结果打印:
[2, 4, 6]

reduce()

作用:将列表中的元素和其他数运算

reduce(function, sequence, initial=None)

例子:
from functools import reduce
print(reduce(lambda x,y:x+y,[1,2,3],1))
#结果:(1+1)+2+3=7

zip()

zip(iter1 [,iter2 [...]])

list1=[1,2,3]
list2=[2,3,4]
for i in  zip(list1,list2):
    print(i)

打印的结果为纵向整合:
(1, 2)
(2, 3)
(3, 4)
案例2:将字典的key和value对换位置
dict1={"name":"lisi","age":"18"}
print(dict(zip(dict1.values(),dict1.keys())))

闭包和装饰器

闭包:
1.函数嵌套函数
2.内部函数返回外部函数的参数
3.外部函数返回内部函数的函数名不带括号

案例:

# 求 a*x+b=y 因为ab可能是固定的,所以我们希望不用每次都需要传ab
# 所以这里使用闭包
def a_line(a,b):
    def re_y(x):
        return a*x+b
    return  re_y

fuc_=a_line(10,20)
print(fuc_(8))
print(fuc_(9))

如果想要给函数添加一些功能,但是又不想动这个函数的代码,我们就需要使用装饰器

比如我们想看一个函数的执行时间(非装饰器)

import time

def i_can_sleep():
    time.sleep(3)


start_time=time.time()
i_can_sleep()
stop_time=time.time()
print("函数的执行时间%s"%(stop_time-start_time))

运行结果为:函数的执行时间3.000004291534424

咱们不想修改i_can_sleep函数里面的代码,但是需要i_can_sleep具备记录函数执行的时间功能

def timer(fun):
    def warpper():
        start_time = time.time()
        fun()
        stop_time = time.time()
        print("函数的执行时间%s" % (stop_time - start_time))
    return warpper
@timer
def i_can_sleep():
    time.sleep(3)


i_can_sleep()

装饰器的执行过程:
1.遇到i_can_sleep看到该函数有装饰器,则会先执行装饰器
2.如何执行装饰器, timer(i_can_sleep())

装饰器带参数(我们可以根据装饰器的参数不同,做不同的处理)

#装饰器没带参数,但是被装饰的函数带参数
def timer(func):
    def warpper(a,b):
        start_time=time.time()
        func(a,b)
        time.sleep(2)
        stop_time = time.time()
        print("函数的执行时间%s" % (stop_time - start_time))
    return warpper
@timer
def add(a,b):
    print(a+b)
add(1,5)

装饰器带参数

import time

def new_timer(vargs):
   def timer(func):
       def warpper(a,b):
           start_time=time.time()
           func(a,b)
           time.sleep(2)
           stop_time = time.time()
           print(vargs)
           print("函数的执行时间%s" % (stop_time - start_time))
       return warpper
   return timer
@new_timer('add')
def add(a,b):
   print(a+b)
add(1,5)

执行结果:

6
add
函数的执行时间2.00000262260437

我们可以在函数中使用if来区别vargs的参数来做不同的处理,我们也可以通过print(func.name)来拿到函数的名字

上下文管理器

with 不用担心文件close方法,会自动进行关闭

模块

image.png

pep8编码规范

什么样的代码是优雅的代码?

如何增加类的属性和方法

类的私有成员 self.__file
类的首字母需要大写

自定义with语句

初始化和结束时调用
enter方法
exit方法

Python标准库的定义

1.正则
希望\不转移,则需要在字符串前 加上r开头
print(r'\d-\d-\d')

文件和目录访问

上一篇下一篇

猜你喜欢

热点阅读