初学Python总结(基础语法篇)

前言

 学习python也有将近三个月了,从最初窥其奥秘,后一步一步通过各种渠道学习,中间也走了不少弯路。为了巩固学习的内容,坚实知识体系框架,不至于学了后面忘了前面,特写下该总结。

1.基础数据类型

 

    包括整型(int,不可变不可迭代) 浮点型(float,同int)字符串型string(str,不可变,可迭代)布尔类型(True/False) 复数类型

 

2.基本运算符

 

    +(相加) -(相减) *(相乘) /(除) //(相除取商) %(相除取余) **(幂运算)

 

3.赋值运算

 

    = 简单赋值 += -= *= /=累积赋值 == != 判断符,返回bool

 

4.序列类型

 

    列表(list) 元组(tuple) 字典(dict)

    列表:有序、可变、可迭代;
    元组:有序、不可变、可迭代;
    字典:无序(因为有对应的key)、可变、可迭代;
    其中,列表、元组通过切片,索引取值,字典通过键获取键值

 

5.数据类型的常用操作方法

列表:

list.append()追加
list.copy()浅复制
list.count(1)列表中1的个数
list.extend()扩展,参数为可迭代如list tuple dict,同append区分
list.insert()可指定位置插入元素
list.index()在指定位置或范围返回第一次出现参数位置
list.pop()删除最后元素并返回删除值
list.remove()删除指定元素
list.reserve()反序排列
list.sort()正/逆序排列

元组:

tuple.count()
tuple.index()
tuple.copy()浅复制

字符串:

str.count()同list
str.endwith('a')/.startwith('a')#判断开头、结尾字符
str.find('a')/.index('a')#查找指定字符,如果没有,二者返回结果的区别
str.isalpha()/.isdigit()#判断是否是字母/数值
str.upper()/.lower()转大/小写
str.replace('a','b',1)#b替换a,1次
str.split()指定字符分割

字典:

dict.items()返回键和键值的列表
dict.values()返回所有键值的列表
dict.keys()返回所有键的列表
dict.get(s,10),s是否在字典中,是返回1,否返回10
dict.update()更新键对应的值,没有则新建

 

6.控制流程

    (1)if条件语句:

if 条件1:
    执行语句
elif 条件2:
    执行语句
else:
    执行语句

  (2)while循环:

while True:
    执行语句
    中止条件(如果没有中止条件,那么该循环是个死循环)

  (3)for循环

for 条件:
    执行语句(for遍历结束,循环结束)

  

7.函数

    (1)基本结构:

def funName():
    函数语句
    return 

  (2)函数参数:

    形参与实参:形参是函数体括号内的参数形式,实参是调用函数传给函数的实际参数值
    固定参数:def fun(a,b=1):#两个参数,a为固定参数
    默认参数:def fun(a,b=1):#两个参数,b为默认参数
    不定长参数:def fun(*args,**kwargs)

    (3)全局变量与局部变量

 

    (4)函数内嵌、闭包、递归

内嵌:

def fun1():
    def fun2(): 
        return
    return     

  

闭包:

def fun_x(x):
    x += 1
    def fun_y(y):
      return x*y 
  return fy

  

递归:

def factorial(n): 
    if n == 1:
        return n * factorial(n-1) #规律数列的求解和求和等

    (5)常见内置函数

dir(__builtins__)#查看所有内置函数 help(funname)#查看函数具体含义 abs()#返回绝对值 max()#序列最大值 str()#转字符串 dict()#转字典 sorted()#排序 sum()#求和 bin()#转二进制 ord()#转ascii码 chr()#ascii转字符 isinstance()#判断对象类型 ············

 

8.类与模块

    (1)定义类:

class className:#类名驼峰原则
    def __init__(self,参1,参2,······)#初始化参数 
        self.参1 = 参1 self.参2 = 参2 ······· 
    def method1(self):#类方法1
        语句 
    def method2(self):#类方法2 
        语句                     

    (2)类继承:

class A:
  ****** class B(A)#类B继承类A的属性及方法

  

    (3)实例化:

c = A(参1,参2,······)#c实例化类A,可以调用A下面的方法 

  

    (4)装饰器:
函数装饰器:装饰函数的参数是被装饰的函数对象,返回原函数对象装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象概括的讲,装饰器的作用就是为已经存在的对象添加额外的功能。
类装饰器:
@property: 装饰过的函数返回的不再是一个函数,而是一个property对象 装饰过后的方法不再是可调用的对象,可以看做数据属性直接访问。
@staticmethod :(静态方法)把没有参数的函数装饰过后变成可被实例调用的函数,函数定义时是没有参数的,可以不接收参数
@classmethod :(类方法)把装饰过的方法变成一个classmethod类对象,既能能被类调用又能被实例调用。注意参数是cls代表这个类本身。而是用实例的方法只能被实例调用。

 

9.文件

 

    (1)创建一个文件:

f = open(r'path','model')

r'path',解决路径反斜杠问题

model:

'r' 只读
'w' 写入
'a' 追加
'rb' 读二进制
'wb' 写二进制
'ab' 追加二进制

f = open(r'path','w')#打开文件,如果没有该文件,则新建,‘r’模式不能新建
f.wrire('content')#写入内容 
f.flush()#保存 
f.close()#关闭 

  

另一种方法

with open(r'path','w') as f: 
    f.write('content')#该方法不用保存和关闭,会自动处理 

  

10.时间与日期


import time#导入时间模块
time.time()#当前时间,秒单位,从1970年到现在的秒数
time.localtime()#返回当前时间的年,月,日,时,分,秒,等信息

    格式化输出时间:


>>> time.asctime( time.localtime(time.time())) 
'Wed Sep 20 14:03:47 2017'
>>> time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())
'2017-09-20 14:04:20'

 

11.异常处理

try:
   suite1 #测试语句块
except exception1:
   suite2 #如果测试语句suite1中发生exception1异常时执行
except (exception2,exception3):
   suite3 #如果测试语句suite1中发生元组中任意异常时执行
except exception4 as e: #as把异常的原因赋值给e
   suite4 #如果测试语句suite1发生exception4的异常时执行
except:
   suite5 #如果测试语句suite1发生异常在所列出的异常之外时执行
else:
   suite5 #如果测试语句块suite1中没有发生异常时执行
finally:
   suit6 #不管测试语句suite1中又没有发生异常都会执行 

 

 注意:中间的except,else,finally都是可选的。各类异常参考该网址:http://www.runoob.com/python/python-exceptions.html

  

         

posted @ 2017-10-31 09:45  小学生老铁  阅读(237)  评论(0)    收藏  举报