关闭

Python基本语法

标签: python
383人阅读 评论(0) 收藏 举报
分类:

注释

'''
这是多行注释1
这是多行注释2
这是多行注释3
'''

"""
这是多行注释1
这是多行注释2
这是多行注释3
"""

#这是单行注释

py文件中使用中文

py文件中使用中文, 在文件第一行指定字符编码

# -*- coding:utf-8 -*-

在vim中如下命令设置编码

:set fileencoding=utf-8

代码如下:

# -*- coding:utf-8 -*-
chinese = '''
在python中使用中文
注意字符编码问题
字符编码有:utf-8, cp936, gb2312, iso-9959-1
'''
print chinese.decode('utf-8').encode('cp936')

元组

tuple1 = (1, 3, 5, 7)
print tuple1[0]      # 打印第一个元素

列表

list1 = [1, 2, 3, 4, 5]
print list1[0]       # 打印第一个元素
list1.append(6)      # 在末尾添加一个元素

字典

dict1 = {'a':1, 'b':2, 'c':3}
print dict1['a']     # 打印
dict1['d'] = 4       # 添加

for key in dict1:    # 遍历字典
    print dict1[key]

文件操作

f = open("a.txt", "w")
f.write("python\n")
s = []
for i in range(10):
    s.append(str(i) + '\n')
f.writelines(s)
f.close()


f = open('a.txt', 'r')
s = f.read()
print s
f.close()

if 语句

a = 3
b = 5
if a > b:
    print "%s > %s" %(a, b)
elif a < b:
    print "%s < %s" %(a, b)
else:
    print "%s = %s" %(a, b)

for 循环

for i  in range(1, 10):
    if i % 2 == 0:
        print "%d is even" %(i)
    if i == 3:
        print "3" 
        continue
    if i == 5:
        break

while 循环

x = 1
while x <= 5:
    print x
    x += 1
else:
    print "循环没有被break终止就会执行else"

函数

def sumList(number_list):
    s = 0
    for i in number_list:
        s += i
    return s

nums = [1, 2, 3]
print sumList(nums)

def hi(name="Tom"):
    print "hi %s" %(name)
hi()

函数参数默认值

def fun(x, y, z):
    return x + y - z
fun(1, 2, 3)
fun(z=1, x=3, y=2)

可变参数
函数可以有任意多个参数,使用变长参数,所有参数保存在一个元组中。 以”*”开头定义一个参数即可

def myListAppend(*myList):
    l = []
    for i in myList:
       l.extend(i)
    return l

a = [1, 2, 3]
b = [4, 5, 6]
myList = myListAppend(a, b)
print myList

global 关键字

def fun(x):
    global a         # 声明a为全局变量
    return a + x
a = 5
fun(3)               # 值为8

a = 2
fun(3)               # 值为5

lambda 表达式

fun = lambda x : x * x
fun(3)               # 值为9

map 函数

def fun(x):
    return x * x

print map(fun, [1, 2, 3, 4])       # 值为[1,4,9,16]
print [x*x for x in [1, 2, 3, 4]]  # 效果一样

reduce 函数

f = lambda x, y : x + y
print reduce(f, [1, 2, 3, 4, 5])   # 值为 15
相当于执行了 (((1 + 2) + 3) + 4) + 5

filter 函数

f = lambda x : x % 2 == 0
print filter(f, [1, 2, 3, 4, 5])   # 值为[2, 4]

异常处理

try:
    i = input("input a number:")
    print 100 / i
except NameError:
    print "Name error"
except:
    import traceback
    print traceback.print_exc()
finally:
    print "This is finally!"

class Person:
    def __init__(self, name):  # 构造函数
        self.name = name
    def sayHi(self):
        print 'Hello, my name is %s' %(self.name)


class Student(Person):   # 类继承父类
    def __init__(self, name, age):
         Person.__init__(self, name)
         self.age = age
    def hi(self):
        self.sayHi()
        print "I am %s years old!" %(self.age)

p = Student('Tom', 21)
p.hi()

模块

模块定义

#!/usr/bin/env python
# Filename: myModule.py

def printIt(s):
    print s

模块调用

import sys
import math as m
from xml.etree import ElementTree
import myModule

print sys.copyright
print m.sin(3.1415)
print myModule.printIt("abcdef")

如果让一个文件夹成为模块放 在文件夹中加入 __init__.py 的文件

闭包

def plus(number):

    # 在函数内部再定义一个函数, 这个里面的函数就被认为是闭包
    def plus_in(number_in):
        print 'inner:' + str(number_in)
        return number + number_in

    # 这里返回的就是闭包的结果
    return plus_in

# 给plus函数赋值, 20给参数number
v1 = plus(20)

# 100 给参数number_in
print v1(100)

在调用plus时候就产生了一个闭包 plus_in, 并且该闭包持有自由变量 number, 当函数plus生命周期结束之后,number这个变量依然存在, 因为它被闭包引用了,所以不会被回收。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:226831次
    • 积分:2849
    • 等级:
    • 排名:第12531名
    • 原创:102篇
    • 转载:47篇
    • 译文:0篇
    • 评论:52条
    文章分类
    最新评论