编码设置
#在最上面添加utf8编码
# -*- coding: UTF-8 -*-
注释
#缩进在Python中很重要
#弱语言
#我是单行注释
'''
这是多行注释,使用单引号。
'''
"""
这是多行注释,使用双引号。
"""
变量
#Numbers(数字)
counter = 100 # 赋值整型变量
miles = 1000.0 # 浮点型
#String(字符串)
name = "John" # 字符串
#多个变量赋值,不推荐
a = b = c = 1
a, b, c = 1, 2, "john"
#列表
list1 = ['physics', 'chemistry', 1997, 2000]
#元组
tup1 = ('physics', 'chemistry', 1997, 2000)
#字典
d = {1 : 2, 'a' : 'cx' }
操作符
+-*/
#取模 %
20%10=0
#幂 ** 2的2次方
2**2=4
#取整除 //
9//2=4, 9.0//2.0=4.0
#比较
==、!=、<>、>、<、>=、<=、、
#赋值
=、+=、-=、*=、、/=、%=、**=、//=、
#逻辑运算符
and (x and y) 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值
or、(x or y) 如果 x 是非 0,它返回 x 的值,否则它返回 y 的计算值
not、(not x)如果 x 是非 0,它返回 x 的值,否则它返回 y 的计算值
#身份运算符
is (x is y) is 是判断两个标识符是不是引用自一个对象
is not (is not) is not 是判断两个标识符是不是引用自不同对象
#位运算符
控制语句
num = 5
if num == 3: # 判断num的值
print 'boss'
elif num == 2:
print 'user'
elif num == 1:
print 'worker'
elif num < 0: # 值小于零时输出
print 'error'
else:
print 'roadman' # 条件均不成立时输出
# 简单使用
if num >= 0 and num <= 10:
print 'hello'
循环语句while
#while判断语句
count = 0
while (count < 9):
print 'The count is:', count
count = count + 1
# continue
i = 1
while i < 10:
i += 1
if i%2 > 0: # 非双数时跳过输出
continue
print i
#break的使用
i = 1
while 1: # 循环条件为1必定成立
print i # 输出1~10
i += 1
if i > 10: # 当i大于10时跳出循环
break
#else的使用
count = 0
while count < 5:
print count, " is less than 5"
count = count + 1
else:
print count, " is not less than 5"
循环语句for
for letter in 'Python': # 第一个实例
print '当前字母 :', letter
fruits = ['banana', 'apple', 'mango']
for index in range(len(fruits)):
print '当前水果 :', fruits[index]
类型转换
tmp = '7'
n = 12.2
#字符串转换为数字
print int(tmp)
#字符串转换为float类型
print float(tmp)
#数字转换为字符串
print str(n)
obj = {1:12}
oo = [1,2,4,7,8]
#参数可以是元组、列表或者字典,wie字典时,返回字典的key组成的集合
print tuple(oo)
#对象转为字符串1: 12}
print repr(obj)
#执行一个字符串表达式,返回计算的结果
print eval("11+243")
字符串
var1 = 'Hello World!'
#字符串长度
print len(var1)
#查
print "var1[0]: ", var1[0]
print "var2[1:5]: ", var1[1:5]
#连接字符串 +、+=
print "a" + "b"
#更新字符串
print "更新字符串 :- ", var1[:6] + 'Runoob!'
#重复输出3次字符串
print "bb\n" * 3
#截取字符串中的第2到第5个字符串(1,4)
print var1[1:4]
#判断字符串中是否包含某个字符串(in/not in),返回布尔值
print "W" in var1
#字符串格式化输出
print "My name is %s and weight is %d kg!" % ('Zara', 21)
name = 'Libai'
#判断是否以指定的字符串结尾
new_val = name.endswith('bai')
print(new_val)
#比较字符串
print cmp("ss","gwd")
#分割字符串
str = 'hello,world,hello'
# 默认以空格为分割
print(str.split()) # ['hello,world,hello'] 单词之间没有空格,所以所有的内容为一个元素
# 以o为分割
print(str.split('o')) # ['hell', ',w', 'rld,hell', '']
# 以逗号分割
print(str.split(',')) # ['hello', 'world', 'hello']
str = 'hello,\nworld,\nhello'
# 以行为分割字符串
print(str.splitlines()) # ['hello,', 'world,', 'hello']
列表
#创建
list = ['physics', 'chemistry', 1997, 2000]
#获取元素[1,3)输出 ['chemistry', 1997]
print "list[1:3]: ", list[1:3]
#添加元素
list.append('Runoob')
#删除元素
del list[0]
#移除最后一个元素
list.pop()
#插入元素的某个位置
list.insert(1,'a')
#获取长度
print len([1, 2, 3])
#两个元组相加
print list + [4, 5, 6]
#迭代
for x in list: print x,
#将列表转换为元组
print tuple(list)
元组
#元组了和列表操作一样,只不过不能增删改
tup1 = ('physics', 'chemistry', 1997, 2000)
字典
#创建
#不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
#查找key为Name的value
print "dict['Name']: ", dict['Name'];
dict.get('Name')
#修改
dict['Age'] = 8;
#设置默认值none,如有值则忽略
dict.setdefault('name')
#删除键是'Name'的条目
del dict['Name']
dict.pop('Name')
#清空词典所有条目
dict.clear()
# 删除词典
del dict
#列表形式返回value
print d.values()
#遍历字典key通过key取值
for key in dict.keys():
print(key+':'+dict[key])
#遍历值
for value in a.values():
print(value)
#遍历字典的key和value
for key,value in a.items():
print(key+':'+value)
函数
#格式
def functionname( parameters ):
#函数_文档字符串
function_suite
return [expression]
#调用
functionname(paraneters)
#多个函数及缺省函数
def printinfo( name, age = 35 ):
print "Name: ", name;
print "Age ", age;
return;
面对对象
class ClassName:
'类的帮助信息' #类文档字符串
class_suite #类体
class 派生类名(基类名)
...
类特殊属性
__name__# 类的名字(字符串)
__doc__# 类的文档字符串
__base__# 类的第一个父类
__bases__# 类所有父类构成的元组
__dict__# 类的字典属性
__module__# 类定义所在的模块
__class__# 实例对应的类
-
__foo__:
定义的是特殊方法,一般是系统定义名字 ,类似__init__()
之类的。 -
_foo:
以单下划线开头的表示的是 protected 类型的变量,即保护类型只能允许其本身与子类进行访问,不能用于from module import *
-
__foo:
双下划线的表示的是私有类型(private)的变量, 只能是允许这个类本身进行访问了。
# -*- coding: UTF-8 -*-
class Person:
'lalalllalalalalalal'
__secretCount = 0; #私有变量
publicCount = 0; #公开变量
def __init__(self,name,age):
self.name = name
self.age = age
def __del__(self):
class_name = self.__class__.__name__
print class_name, "销毁"
def showClass(self):
print self.__class__
def showDoc(self):
'lolololololololol'
print self.__doc__
def showDict(self):
print self.__dict__
def showModule(self):
print self.__module__
@classmethod
def classFunc(self):
print "这是类方法"
@staticmethod
def staticFunc():
print "静态方法"
p = Person("yf",12)
p.showClass()
p.showDoc();
p.showModule();
Person.classFunc();
Person.staticFunc();