1.1 执行
1.2 Print
name = "Maya" age = 31 print ("Hello, %s, you are %d" %(name,age))
name = "Maya" age = 31 print ("Hello, %s, you are %d" %(name,age))
%d:数字;%s:字符;%r:未知类型
打印内容和变量之间用空格隔开,且多个变量在一个%()里面
1.3 注释
1.4 分支与循环
1.4.1 If语句
1.4.1.1 数值判断
等于 ==
不等于!=
a = 2
b = 3
if a > b:
print ('a>b')
else:
print ("a≤b")
c = 2
d = 3
if c == d:
print ('c=d')
else:
print ("c!=d")
1.4.1.2 布尔判断
1.4.1.3 If…elif…else
1.4.2 In
e = "Maya J 你好哇"
if "你好" in e:
print ("这是问好的意思")
else:
print ("我也不知道什么意思")
1.4.3 For
1.4.4 While
1.4.4.1 猜数字
import random secret = random.randint(1,99) #print(secret) guess = 0 tries = 0 print ('Hello, I am Maya, and I have a secret!') print ('It is a number from 1 to 99. I will get you 6 tries. ') while guess != secret and tries < 6: guess = int(input('Guess it please:')) if guess < secret: print ('too low, please higher。') elif guess > secret: print ('too high, please lower。') tries = tries + 1 print('tries is,', tries) if guess == secret: print ('yoyoyo, you are so clever, you got it! congratulations!') else: print ('Oh, I am sorry, you are failed. The secret number was:',secret)
另一种写法如下:
import random secret = random.randint(1,99) print(secret) #打印出随机数方便测试代码 tries = 1 #默认次数为1 print ('Hello, I am Maya, and I have a secret!') print ('It is a number from 1 to 99. I will get you 6 tries.') guess = int(input('Guess it please:')) #输入随机数 print('tries is,', tries) #打印出猜的次数,方便测试代码 if guess == secret: print ('yoyoyo, you are so clever, you got it! congratulations!') else: while guess != secret and tries < 6: if guess < secret: guess= int(input('too low, please be higher:')) #重新输入 elif guess > secret: guess= int(input('too high, please be lower:')) #重新输入 tries = tries + 1 print ('tries is,', tries) #6次都没有猜对后,告诉其答案 print ('Oh, I am sorry, you are failed. The secret number was:',secret)
以上两种都没有对输入内容超限后做判断:
import random secret = random.randint(1,99) print(secret) #打印出随机数方便测试代码 tries = 1 #默认次数为1 print ('Hello, I am Maya, and I have a secret!') print ('It is a number from 1 to 99. I will get you 6 tries.') guess = int(input('Guess it please:')) #输入随机数 if guess in range(1,100): #判断输入内容是否在范围内 print('tries is,', tries) #打印出猜的次数,方便测试代码 if guess == secret: print ('yoyoyo, you are so clever, you got it! congratulations!') else: while guess != secret and tries < 6: if guess < secret: guess= int(input('too low, please be higher:')) #重新输入 elif guess > secret: guess= int(input('too high, please be lower:')) #重新输入 tries = tries + 1 print ('tries is,', tries) #6次都没有猜对后,告诉其答案 print ('Oh, I am sorry, you are failed. The secret number was:',secret) else: print("wrong!")
1.5 数组
a = [1,2,3]
a.append(‘c’) 则a = [1,2,3,c]
1.6 字典
{key:”value”}
https://www.cnblogs.com/zhenwei66/p/6593747.html
字典换行列出
stu0 = {
'num1':'Tom',
'num2':'Lucy',
'num3':'Sam',
}
1.7 Zip
通过zip方法合并两个list为dictionary
#字典换行编写 stu0 = { 'num1':'Tom', 'num2':'Lucy', 'num3':'Sam', } print(stu0.items()) #items(返回由“键值对组成元素“的列表) #字典常用方法 stu = {'name':'Maya','sex':'Female','age':'31','hobby':'swim'} print(stu.keys()) #keys(获取字典所有的key) print(stu.values()) #values(获取字典所有的value) print(stu.get('age')) #get(指定key,获取对应的值) print(stu.copy()) #copy(拷贝字典) stu.update({'age':'27'}) #update(更新) print(stu) b = stu.popitem() print(b,stu) #popitem(随机获取某个键值对,并在字典中删除) print(stu.clear()) #clear(清空字典内容) #生成字典:fromkeys(指定一个列表,把列表中的值作为字典的key,生成一个字典) name = ['tom','lucy','sam'] print(dict.fromkeys(name)) print(dict.fromkeys(name,'W')) # 通过zip方法合并两个list为dictionary keys = ['a','b','c'] values = ['1','2','3'] for key,value in zip (keys,values): print (key,value)
1.8 函数
def Madd (a=1,b=2):
return a + b
如果调用该函数时,不传参则按默认参数,如传参,则按传参后的计算。
1.9 类和方法
一切皆为对象,抽象的一组对象就是类。例如:汽车就是类,Maya的牧马人汽车就是一个具体的对象。
https://www.cnblogs.com/QI1125/archive/2017/09/18/7545537.html
1.9.1 类定义
类定义语法格式如下:
class ClassName:
<statement-1>
. .
.
<statement-N>
1.9.2 类对象
创建一个类之后,可以通过类名访问、改变其属性、方法
1.9.3 实例对象
类实例化后,可以使用其属性,可以动态的为实例对象添加属性(类似javascript)而不影响类对象。
1.9.4 类的属性
可以使用点(.)来访问对象的属性,也可以使用以下函数的方式来访问属性:
- getattr(obj, name[, default]) : 访问对象的属性
- hasattr(obj,name) : 检查是否存在一个属性
- setattr(obj,name,value) : 设置一个属性。如果属性不存在,会创建一个新属性
- delattr(obj, name) : 删除属性
- __dict__ : 类的属性(包含一个字典,由类的数据属性组成)
- __doc__ :类的文档字符串
- __name__: 类名
- __module__: 类定义所在的模块(类的全名是'__main__.className',如果类位于一个导入模块mymod中,那么className.__module__ 等于 mymod)
- __bases__ : 类的所有父类构成元素(包含了以个由所有父类组成的元组)
1.9.4.1 Python内置类属性
#定义类 class Person: "Person类" def __init__(self, name, age, gender): print('进入Person的初始化') self.name = name self.age = age self.gender = gender print('离开Person的初始化') def getName(self): print(self.name) p = Person('ice', 18, '男') print(p.name) # ice print(p.age) # 18 print(p.gender) # 男 print(hasattr(p, 'weight')) # False # 为p添加weight属性 p.weight = '70kg' print(hasattr(p, 'weight')) # True print(getattr(p, 'name')) # ice print(p.__dict__) # {'name': 'ice', 'age': 18, 'gender': '男', 'weight': '70kg'} print(Person.__name__) # Person print(Person.__doc__) # Person类 print(Person.__dict__) # {'__module__': '__main__', '__doc__': 'Person类', '__init__': <function Person.__init__ at 0x000001A526EF37B8>, 'getName': <function Person.getName at 0x000001A526EF3840>, '__dict__': <attribute '__dict__' of 'Person' objects>, '__weakref__': <attribute '__weakref__' of 'Person' objects>} print(Person.__mro__) # (<class '__main__.Person'>, <class 'object'>) print(Person.__bases__) # (<class 'object'>,) print(Person.__module__) # __main__
1.9.5 定义类例子
创建类时,默认object为所有类的基类,方法的第一个参数必须时存在的,一般习惯为self,但调用的时候不需为self传值。
一般在创建类时,会首先声明初始化方法_init__。
class A(): def __init__(self, a, b): self.a = int(a) self.b = int(b) def add(self): return self.a + self.b c = A('7',8) print(c.add())
注:换行要注意,如下图(c在classA中了)则报错:
1.9.6 类的继承
class A(): def add(self,a,b): return a + b class B(A): def sub(self,a,b): return a - b print (B().add(6,4)) # 10
print (B().add(6,4)) # 10
1.10 模组
Python的第三方类库或框架模块默认存放在:Python36Libsite-packages。
通过import或from…import…引用模块。
- time模块:时间功能
- os模块:文件和文件夹相关功能
- selenium:web自动化
1.10.1 time
import time #引用time模块 print (time.ctime()) from time import ctime #仅仅引用time模块的ctime方法 print (ctime()) print ('引用time模块的所有方法') from time import * #引用time模块的所有方法 print ('ctime(): %s' %(ctime())) print (ctime()) print ('休眠2秒') #休眠2秒 sleep(2) print (ctime()) print (time.ctime()) #错误示例:引用time模块的所有方法直接写方法即可
1.10.2 模块调用
- count.py调用同一目录下的pub.py中的add
from pub import add
- count.py调用同一目录下另一文件夹module下的pub
from module import pub
- count.py调用同一目录下另一文件夹module下的pub.py中的add
from module.pub import add
例如:文件目录如下:
add-sub含model文件夹和test.py文件。其中model下有count.py和new_count.py。
-model
---count.py
---new_count.py
- test.py
count.py
class A(): def add (self,a,b): return a + b
new_count.py
from .count import A #相对于该文件的文件夹去找count class B(A): def sub (self,a,b): return a - b result = B().add(2,5) print (result)
test.py
import sys sys.path.append('./module') #将module加入环境变量path下 from module import new_count test = new_count.B() test.add(2,5) #结果为7
1.11 异常
Python用异常对象(exception object来表示异常情况。遇到错误后,会引发异常。如果异常对象未被处理或捕捉,程序会用所谓的回溯(Traceback,一种错误信息)终止执行。Python提供try..except..语句来接收这个异常。
在python中所有的异常都继承Exception,所以我们可以使用它来接收所有的异常。
1.11.1 接收异常
1.11.2 打印出异常原因
try:
print (a)
except BaseException as msg:
print('异常啦,原因是:%s' %msg)
1.11.3 是否异常均被执行
try: a = 8 print (a) except BaseException as msg: print('异常啦,原因是:%s' %msg) else: print('没有异常哟~') finally: print('永远被执行')
1.11.4 常见异常
- BaseException:新的所有异常类的基类
- Exception:所有异常类的基类,但继承BaseException 类
- FileNotFoundError:试图打开一个不存在的文件或目录
- AssertionError:assert 语句失败
- AttributeError:试图访问一个对象没有属性
- IOError:输入输出异常,基本是无法打开文件
- NameError:使用一个还未赋值对象的变量
- IndexError:当一个序列超出了范围
- IndentationError:语法错误,代码没有正确的对齐
- KeyboardInterrupt:Ctrl+C 被按下,程序被强行终止
- TypeError:传入的对象类型与要求不符
- SyntaxError Python:代码逻辑语法出错,不能执行