python教程

1991年发布第一个版本

设计定位:Python的设计哲学是“优雅”、“明确”、“简单”。

Python开发者的哲学是“用一种方法,最好是只有一种方法来做一件事。

语言分类:脚本语言,NONONO,Python的支持者较喜欢称它为一种高级动态编程语言

Python 2.7将于2020年1月1日终止支持,请使用python3.x

执行Python在执行时,首先会将.py文件中的源代码编译成Python的byte code(字节码),然后再由Python Virtual Machine(Python虚拟机)来执行这些编译好的byte code。

基本数据类型

m_int = 100 # 整数

m_float = 1000.0 # 浮点数,精度与系统相关

m_bytes = b'hello'

m_complex = 2+2.7j # 复数

m_bool = True # 逻辑值, 只有两个值:真、假

m_str = "runoob" # 一个由字符组成的不可更改的有序串行

m_tuple = (4.0, 'string', True) #可以包含多种类型的不可改变的有序串行,元组

m_list = [100, 'hello', False] # 有序列表,可包含多种数据类型

m_dict = {'key1': 1.0, 3: False} # 一个可改变的由键值对, map

方法,函数

定义方法:def 方法名(参数列表)

def test_fun():

print('hello world')

def fact(n):

if n==1:

return 1

return n * fact(n - 1)

有默认参数的函数

def spam(a, b=42):

print(a, b)

spam(1) # Ok. a=1, b=42

spam(1, 2) # Ok. a=1, b=2

任意数量参数的函数

def avg(first, *rest):

return (first + sum(rest)) / (1 + len(rest))

#接受任意数量的位置参数和关键字参数

def anyargs(*args, **kwargs):

print(args) # A tuple

print(kwargs) # A dict

单个返回值

def test_add(a, b):

return a + b

#调用方法

def test_add(1, 2)

def test_add('hello', 'world')

多个返回值

test_move_point(x, y, z):

x += 1

y += 1

z += 1

return x, y, z

#调用函数

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

返回函数

def lazy_sum(*args):

def temp_sum():

ax = 0

for n in args:

ax = ax + n

return ax

return temp_sum

#调用

f = lazy_sum(1, 2, 3, 4)

f()

匿名函数:lambda关键字

add = lambda: x, y: x + y

add(1, 2)

add('hello', 'world')

def square_sum(x, y):

return lambda: x * x + y * y

装饰器,不带参数

import functools

def log(func):

@functools.wraps(func)

def wrapper(*args, **kw):

print 'call %s():' % func.__name__

return func(*args, **kw)

return wrapper

@log

def my_func():

print('test my func')

#等价于

myfunc = log(my_func)

带参数的装饰器

import functools

def log(text):

def decorator(func):

@functools.wraps(func)

def wrapper(*args, **kw):

print '%s %s():' % (text, func.__name__)

return func(*args, **kw)

return wrapper

return decorator

装饰器,对象

class Log:

def __init__(self)

类和实例

定义类

class Student:

pass

class Student(object):

pass

创建实例

s = Student()

定义变量和访问限制

class User:

__all_user_count = 0

def __init__(self):

self.name = 'Tom'

self.age = 18

self.__money = 100 # 私有变量

User.__all_user_count += 1

def get_money(self):

return self.__money

def set_money(self, m):

self.__money = m

# 私有方法

def __use_money(self):

self.__money -= 1

# 静态方法

@staticmethod

def create_user():

return User()

继承和多态

class Fruits:

def __init__(self):

self.name = 'fruits'

def say_hi(self):

print('i am fruits')

class Apple(Fruits):

def say_hi(self):

print('i am apple')

class Pear(Fruits):

def say_hi(self):

print('i am pear')

多重继承

新式类多继承搜索顺序:广度优先

经典类多继承搜索顺序:深度优先

class P(object):

def fun_a(self):

print('function from P')

class A(P):

def __init__(self):

self.name = 'b'

def fun_a(self):

print('function from A')

class B(P):

def __init__(self):

self.name = 'b'

class C(B, A):

def __init__(self):

A.__init__(self)

B.__init__(self)

获取对象信息

type() 获取对象type

dir() 所有属性和方法

isinstance() 判断是否为某类型或某类型的子类

特殊方法

__init__() 初始化方法,构造方法

__str__() 配合str(object)方法调用

__repr__() 配合repr(object)方法,返回一个可以用来表示对象的可打印字符串

__call__() 对象是否可调用

__len__() 配合len(object)方法调用

文件读写

try:

f = open('D:/test.txt', 'r')

f.write('hello world')

finally:

if f:

f.close()

with open('D:/ttt.txt', 'w') as f:

f.write('hello world 123')

异常处理

# try...except...else

try:

f = open('D:/test.txt', 'w')

f.write('hello sb')

f.close()

except IOError as e:

raise e

else:

print('write file ok')

# try...except...finally

try:

f = open('G:/test.txt', 'w')

f.write('hello error')

except IOError as e:

raise e

finally:

if f:

f.close()

线程

调用start_new_thread启动线程

thread.start_new_thread(function, args, kwargs=None)

继承threading.Thread实现run方法

import threading

class ThreadTask(threading.Thread):

def run(self):

print('i am from thread task')

t = ThreadTask()

t.start()

模块和包

模块:一个.py文件就称之为一个模块(Module)

包 :一个目录来组织模块的方法,称为包(Package),每个包下面有个init.py文件,当首次导入这个时会执行该文件

python的设计哲学是优雅明确简单_Python简单教程相关推荐

  1. python的设计哲学_Python 的设计哲学

    The Zen of Python, by Tim Peters Python 的设计哲学,作者:Tim Peters Beautiful is better than ugly. 优雅胜于丑陋. E ...

  2. python的设计哲学是什么意思_Python彩蛋:哲学理念及设计思想(The Zen of Python, by Tim Peters)...

    为了更好的了解Python哲学理念及设计思想,可以在任何一个Python交互解释器中输入import this命令.就会出现Python的一个彩蛋,描述了一系列Python的设计原则,阅读一下这些文字 ...

  3. python的设计哲学_Python的设计哲学

    Beautiful is better than ugly. 优美胜于丑陋 Explicit is better than implicit. 明了胜于晦涩 Simple is better than ...

  4. python的设计哲学_python3从零学习-设计哲学

    python设计哲学 python设计哲学思想可以从python留的彩蛋里面一窥究竟.打开Python控制台,这个我下一节会讲怎么打开python控制台,然后输入import this,就会出现以下内 ...

  5. python的设计哲学是什么意思_哲学是什么意思

    展开全部 哲学意思:有严密逻辑2113系统的宇宙5261观,它研究宇宙的性质.宇宙内4102万事万物演化1653的总规律.人在宇宙中的位置等等一些很基本的问题. 哲学其按其词源有"爱智慧&q ...

  6. python猜拳小游戏代码200行左右_python简单小游戏代码,python简单小游戏代码200行...

    如何看懂python杨辉三角代码? 第一步先找规律,抽象化问题.首先我们观察到,第一行为[1],我们直接赋给一个变量:初始化数列 p = [1].核心点是这个除去首位两个 [1] 的中间部分:[p[0 ...

  7. python爬取有道翻译的代码_python 简单的调用有道翻译

    代码 import json import requests # 翻译函数,word 需要翻译的内容 def translate(word): # 有道词典 api url = 'http://fan ...

  8. python词云代码简单_Python 简单实现标签词云

    基于Python的词云生成类库,很好用,而且功能强大.博主个人比较推荐 github:https://github.com/amueller/word_cloud 官方地址:https://amuel ...

  9. python一看就很厉害的代码_Python学习教程:怎么写出让人看起来就很舒服的代码?...

    Python学习教程:怎么写出让人看起来很优雅舒服的代码?让人眼前一亮! 很多新手在开始学一门新的语言的时候,往往会忽视一些不应该忽视的细节,比如变量命名和函数命名以及注释等一些内容的规范性,久而久之 ...

最新文章

  1. java 一次性输入与输出_Java入门——(7)IO(输入与输出)
  2. 17天17个Python设计模式--目录
  3. 数据结构课程设计----基数排序
  4. MySQL学习笔记03-MySQL的安装 .
  5. 基本属性---Linux
  6. php给留言分配id_简单实现PHP留言板功能
  7. react-native 改变webview中字体颜色方式
  8. 软考信息系统项目管理师_项目进度管理2---软考高级之信息系统项目管理师014
  9. matlab高数同步教程,高等数学及其MATLAB实现 上册
  10. Mac下通过virtualbox安装windows系统
  11. Ubuntu 20.04 虚拟机镜像源更改
  12. STM3210B_EVAL U盘功能 USB + SPI +SD 增加对SDHC卡支持
  13. 深度残差网络+自适应参数化ReLU激活函数:调参记录2
  14. UiPath:以API接口方式启动流程
  15. VSFTPD + NGINX
  16. amazon账号注册用什么软件?
  17. Mysql出现问题:ERROR 1091 (42000): Can‘t DROP ‘**‘; check that column/key exists解决方案
  18. 年底啦,人力成本预算怎么做?
  19. Python库之Scipy库的简介、安装详细
  20. Visual Studio 2012安装

热门文章

  1. 杭电1963 完全背包
  2. Junit下获取src/test/resource路径
  3. Java写播放器好写吗_java写mp3播放器
  4. typescript parseint不能传number_Typescript 使用日志
  5. C语言和设计模式(迭代器模式)
  6. 【10天基于STM32F401RET6智能锁项目实战第2天】GPIO与寄存器
  7. pythonajax学习_python学习-- django 2.1.7 ajax 请求
  8. 平板电脑必装十大软件_电脑越用越卡?这5个必装软件,分分钟帮你恢复火箭般的速度...
  9. python在cmd界面输入命令_python如何分别向两个cmd窗口输入指令?
  10. windows server 2003 or 2008 远程登录时超过最大连接数的解决办法