python入门: 快速python语法总结

*********************************************
** 请阅读原文: blog.csdn.net/clark_xu   徐长亮的专栏
** 微信公众号:clark_blog
*********************************************
 
python简单易学,笔者快速总结了python的语法,都是干货

python特征

a)         简答易学

b)         解释性和编译性

c)         面向对象

d)         无需管理内存

e)         可扩展性及可嵌入性

f)          免费开源

g)         可移植性好:unix,linux,windows

h)         丰富的库

i)           胶水的语言

 

python文件类型

a)         代码文件:.py

b)         字节码文件:.pyc

                            字节码文件生成

import py_compile

py_compile.compile('01.py')

 

a)         优化代码文件:.pyo

         优化代码文件的生成:python -O -m py_compile 01.py;

python变量

l  变量的赋值: a=1;

l  变量的重新赋值,是引用变量指向新的地址:

>>> a=123

>>> id(a)

1582815600

>>> b=123

>>> id(b)

1582815600

如上:引用变量a和引用变量b指向相同的内存位置

>>> e=345

>>> id(e)

50391056

>>> e=123

>>> id(e)

1582815600

如上,

变量的重新赋值,是引用变量指向新的地址

python运算符和表达式

l  赋值运算符:=, +=, -=, /=, %=

l  算术运算符:/除, //整除, %取余  **i 幂运算

l  关系运算:!=不等,==完全等于

l  逻辑运算符:and,or,not

运算符的优先级(从低到高):

逻辑运算符:or  低于 and 低于 not 低于innot in 低于is not

比较运算符

为运算符。。。。。

 

python的数据类型

l  数字类型:

         整形int,long

         浮点类型:float

         type()查看引用类型,引用类型无需声明,由赋值的类型决定

         复数:>>> c=3.14j 

         >>> type(c)    

l  字符串String

单引号,双引号,三引号

转义字符的使:\, \n -- 换行

>>> sya="let 's \" go \" "

>>> sya

'let \'s " go " '

三引号能报错字符串的格式,例如:

         >>> mail="""tom:

         i am jack

         goodbye

         """

>>> mail

'tom:\n\ti am jack\n\tgoodbye\n\t'

>>> print(mail)

tom:

         i am jack

         goodbye

        

>>> 

 

字符串是有序列的数据,可以通过索引取值,也可以截取

         >>> array='abcde'

         >>> array[1:4]

         'bcd'

         >>> array[::2]

         'ace'

         >>> len(array)

         5

         cmpstr,str2)比对序列是否相同;

         相同返回0

l  元组:

元组适合区分不同的属性,string切片不方便存在缺陷;

元组的每个元素,长度不受限制;

>>> info

('clark', '', '30')

>>> info[0]

'clark'

--空元组

info=()

--单一元素元组

info=('1',) 

因此诞生了一种定义变量的格式:

>>> a,b,c=(1,2,3)

>>> a

1

 

l  列表(list

1.      list是处理一组有序项目的数据结构:

2.      列表是可变类型的数据

>>> list0=[]

>>> type(list0)

>>> list0=['clark','30','male']

3.      添加元素

>>> list0.append('123456')

4. 删除元素:

>>> list0.remove(list0[3])

>>> list0.remove('saber')

l  字典

字典:键值对

字典是python中唯一的映射类型(哈希表

创建字典:

>>> dic1={'name':'clark','age':'25'}

>>> type(dic1)

 

添加值:

>>> dic1['tel']='123456'

弹出值:

>>> dic1

{'name': 'clark', 'age': '25'}

>>> dic1.pop('age')

'25'

>>> dic1

{'name': 'clark'}

清空值

>>> dic1.clear()

>>> dic1

{}

删除对象

>>> del(dic1)

获取对象

>>> dic1.get('name')

'clark'

#如果不存在减值3,返回error

>>> dic1.get('3','error')

'error'

>>> 

python IF语句

单分支

if expression:

         statements(s)

注:python使用缩进作为其语句分组的方法,建议使用4个空格代替缩进

 

缩进不对齐:

if 1<2:

    print('ok')

  print('NO')

报:SyntaxError: unindent does not match any outer indentation level

 

l  if else语句判断规则不局限truefalse

true: 表示非空的量(比如string,tupe,list,set,dictornay,所有非零数

false:表示0nonenull的量

l  if elif else

f x>=90:

    print("a")

elif x>=80:

    print("b")

elif x>=70:

    print("c")

elif x>=60:

    print("d")

else:

    print("e")

 

l  逻辑运算符:

>>> 1 and 1

1

>>> 1 and 0

0

>>> 0 and 0

0

>>> 1 or 0

1

>>> 2 or 0

2

>>> 1 and 2 and 0

0

>>> 2 and 1 and 2

2

>>> 1 or 0 or 0

1

>>> not 1

False

python for循环

l  for in_var in sequence:

         statement(s)

直到整个序列被耗尽,遵循缩进原则;

序列指字符串,元组,字典

 

l  rang(i,j[,步进])

         --如果创建对象未整数

         --i为初始化执行

         --j为终止述职,但是不包括在范围内

         --i不选,默认为0

>>> range(1,100,1)

range(1, 100)

 

l  for遍历字典

         s='hello'

l=[1,2,3,'a']

t=(7,8,9,'x','y')

d={'name':'clark','age':'30','x':'male'}

for x in d:

    print(x) #遍历键值

print(d.items()) #遍历节点

l  for遍历字典方法一:

s='hello'

l=[1,2,3,'a']

t=(7,8,9,'x','y')

d={'name':'clark','age':'30','x':'male'}

for x in d:

    print(x)

    print(d[x])

 

l  for遍历字典方法二:

d={'name':'clark','age':'30'}

for k,v in d.items():

    print(k)

    print(v)

l  breakending的使用

for x in range(20):

    print(x)

    if x==6:

        break

else:

    print('ending')

l  continue的使用:跳出本次循环

for x in range(1,11):

    print(x)

    if x==2:

        print('hello 222222')

        continue

    if x==6:

        break

    print("#"*5)

else:

    print("ending")

l  代码桩pass的使用

for x in range(1,11):

    print(x)

    if x==2:

        print('hello 222222')

        continue

    if x==3:

        pass #代码桩

    if x==6:

        break

    print("#"*5)

else:

    print("ending")

l  退出代码:exist()

 

python while语句

for循环有次数的限制,要了解循环的次数;

当满足的条件的时候循环,不满足的时候停止,while语句

         while exp

                   stat(s)

 

l  break的使用

while x!='q':

    print("hello")

    a=input('please input somming,q for quit: ')

    if a=='q':

        break

l  while  continue else的使用

x=1

while x!='q':

    print("hello")

    a=input('please input somming,q for quit: ')

    if not a:

        break

    if a=='c':

        continue

    print(a)

else:

    print('ending')

函数

--为什么使用函数

1.降低编程难度

2.代码重用

 

l  --函数的定义和调用

1.def 函数名 (参数列表) #可以没有参数

l  形式参数和实际参数

形参:定义时候函数后面的参数

实参:调用的时候,圆括号的变量名称

l  函数编码:

#coding:UTF-8

#encoding:UTF-8

#coding=UTF-8

#encoding=UTF-8

l  函数默认参数:

>>> #coding:UTF-8

#encoding:UTF-8

#coding=UTF-8

#encoding=UTF-8

def fun(x='10',y='椰果'):

    print('一个',x,'',y,'口味')

 

>>> fun()

一个 10 元椰果口味

l  变量作用域:

1.局部变量

         函数中定义的

2. 全局变量:文件顶部定义的可以供文件中任何函数调用;

强制声明变量

x='i am global var'

def fun():

    x=100

    print(x)

    global y

    y=200

fun()

print(y)

l  返回值:

1.函数被调用后会返回一个指定的值

2.函数调用后默认返回none; z=fun(2,3) none

3.return返回值

4.可以是任何类型

5.return执行后,函数终止;因此不能写两个return

6.区分返回值和打印

l  类型传值,对象,元组:

--元组

>>> def f(x):

print(x)    

>>> f(range(10))

range(0, 10)

l  传入参数为元组情形2

>>> t=('name','clark')

>>> def f(x,y):

         print(x+y)

        

>>> f(*t)

nameclark

l  字典的使用:

d={'age':'30','name':'clark'}

 

def f(name,age):

    print('name:'+name)

    print('age'+age)

   

f(name='clark',age='30')

f(**d)

 

注:f(**d)要求键值和形参相同

 

l  处理冗余实参:

def f(x,*args):

    print(x)

    print(args) #args 元组

测试结果:

>>> f(1,2,3)

1

(2, 3)

 

l  处理冗余实参:字典

def fun(x,*args,**kwargs):

    print(x)

    print(args)

    print(kwargs)

测试结果:

>>> fun(1,2)

1

(2,)

{}

>>> fun(x=1,y=2)

1

()

{'y': 2}

>>> fun(1,2,y=2,z=4)

1

(2,)

{'y': 2, 'z': 4}

匿名函数lamdba

是一种快速定义单行最小函数的,是从lisp借用来的;

>>> g=lambda x,y:x*y

>>> g(2,3)

6

 

好处:

1.lambda不需要考虑命名问题

2.在嵌套中,lambda让代码更容易理解

3.写执行脚步,lambda让代码更简洁

 

语法:

冒号前是参数,冒号后为返回值表达式

 

构建函数对象;

>>> g=lambda x,y:x*y

构造函数对象g

>>> g

at 0x0258AC48>

 

你可能感兴趣的:([2016年以后],python)