看不懂简明python教程_简明python教程的读书笔记(一)
python编程是一件愉快的事情!!!
一、python的特点:
它注重的是如何解决问题而不是编程语言的语法和结构。
当你用Python语言编写程序的时候,你无需考虑诸如如何管理你的程序使用的内存一类
的底层细节。
可移植性
支持面向对象和面向过程的编程
可嵌入性:可以在python代码中嵌入c或者c++
丰富的库
二、python代码执行的过程:
源代码.py-> 字节码.pyc ->字节码在PVM(Python虚拟机)中执行
二、python IDE:
三、python的相关基本概念:解释性语言:源代码不是直接翻译成机器语言,而是先翻译成中间代码,再由解释器对中间代码进行解释运行。
编译型语言:在执行之前需要一个专门的编译过程,把程序编译成为机器语言的文件,运行时不需要重新翻译,直接使用编译的结果就行了。数: python中有4种类型的数:整数、长整数、浮点数、复数
字符串:一般用单引号、双引号、三引号
反斜杠
自然字符串:自然字符串通过给字符串加上前缀r或R来指定。例如r"Newlines are indicated
by \n"。unicode字符串:—你只需要在字符串前加上前缀u或U,
记住,在你处理文本文件的时候使用Unicode字符串,特别是当你知道这个文件含有用
非英语的语言写的文本。如果你把两个字符串按字面意义相邻放着,他们会被Python自动级连。例如,'What\'s'
'your name?'会被自动转为"What's your name?"。在Python中没有专门的char数据类型。记住,单引号和双引号字符串是完全相同的。
一定要用自然字符串处理正则表达式。否则会需要使用很多的反斜杠。例如,后向引用符可以
写成'\\1'或r'\1'。
什么是后向引用backreference:\n斜杠加数字表示前面括号的内容。例如:\b(\d+)\b\s+\1\b这样这个会匹配如:123 123重复的数字串
元字符
名称
匹配对象
.
点号(dot)
单个任意字符
\n
换行(newline)
换行
\r
回车(return)
回车
\t
制表符(Tab)
制表符
[...]
字符组(Character Class)
列出的任意字符
[^...]
排除型字符组(Negated Character Class)
未列出的任意字符
\d
数字(digit)
数字
\D
非数字
\w
单词(word)
单词字符(字母或者数字)
\W
非单词字符
\s
空白字符(whitespace)
空白字符
\S
非空白字符
^
脱字符(caret)
行的起始位置
$
美元符(dollar)
行的结束位置
\<
单词的起始位置
\>
单词的结束位置
\b
边界(Boundary)
单词边界
\B
非单词边界
(?=...)
肯定顺序环视(Positive Lookahead)
成功如果右边能够匹配
(?!...)
否定顺序环视(Negative Lookahead)
成功如果右边不能够匹配
(?<=...)
肯定逆序环视(Positive Lookbehind)
成功如果左边能够匹配
(?
否定逆序环视(Negative Lookbehind)
成功如果左边不能够匹配
?
它之前的字符可以不出现,也可以只出现一次
+
它之前的字符可以出现无数次,但至少要出现一次
*
它之前的字符可以出现无数次,也可以不出现
{n}
它之前的字符精确匹配n次
{n,}
它之前的字符可以出现无数次,但至少要出现n次
{n,m}
它之前的字符至少要出现n次,至多出现m次
(...)
圆括号(parenthese)
分组子表达式和记录它包含的字表达匹配的内容
(?:...)
分组子表达式
\1 - \9
后向引用
|
竖线(bar)
匹配分割两边的任意一个表达式变量:变量只是你的计算机中存储信息的一部分内存。使用变量时只需要给它们赋一个值。不需要声明或定义数据类型。
标示符命令规则:
第一个字符必须是字母表中的字母(大写或小写)或者一个下划线;
其他部分可以由字母(大写或小写)、下划线(‘ _ ’)或数字(0-9)组
成;
大小写敏感;数据类型:变量可以处理不同类型的值,称为数据类型。
对象:
分号表示一个逻辑行/语句的结束,如下:
想要在一个物理行中使用多于一个逻辑行,那么你需要使用分号(;)来特别地标明这
种用法。
i = 5
print i
可以写成
i = 5;
print i;
也可以写成
i = 5; print i;缩进:缩进来决定语句的分组。不要混合使用制表符和空格来缩进,因为这在跨越不同的平台的时候,无法正常工作。强烈建议 你在每个缩进层次使用 单个制表符 。对象:类:方法:类也有方法,即仅仅为类而定义地函数。仅仅在你有一个该类的对象的时候,你才可以使用这些功能。例如,Python为list类提供了append方法,这个方法让你在列表尾添加一个项目。一个类也有域,它是仅仅为类而定义的变量。
四、python格式注意:
Python是大小写敏感的
每一行的开始字符前没有空格或者制表符
五、合理使用帮助信息:
help(str)——这会显示str类的帮
助
help你需要经常用
六、python控制流:
If/while/for/break/continue
#!/usr/bin/python
a=12
b=int(raw_input("pls input a int:"))
if b==a:
print "congratudations"
elif b
print "your guess lower than it"
else:
print "done"
#!/usr/bin/python
a=20
flag=True
#这个地方需要注意首字母大写
while flag:
guess=int(raw_input("pls input a int:"))
if guess==a:
print "good"
flag=False
elif guess
print "should bigger"
else:
print "should lower"
print "done"
#!/usr/bin/python
# Filename: for.py
for i in range(1, 5):
print i
else:
print 'The for loop is over'
else部分是可选的。如果包含else,它总是在for循环结束后执行一次。
#!/usr/bin/python
b="abc"
while True:
a=raw_input("pls input:")
if a==b:
break
else:
print "the length is",len(a)
print "done"
七、python模块:模块定义:模块基本上就是一个包含了所有你定义的函数和变量的文件。
标准库模块:sys模块
#!/usr/bin/python
# Filename: using_sys.py
import sys
print 'The command line arguments are:'
for i in sys.argv:
print i
print '\n\nThe PYTHONPATH is', sys.path, '\n'字节编译的文件 :这些文件以.pyc作为扩展名
From import语句:
模块的__name__:
假如我们只想在程序本身被使用的时候运行主块,而在它被别的模块输入的时候不运行主块。每个Python模块都有它的__name__,如果它是'__main__',这说明这个模块被用户单独运行。创建自己的模块:
记住这个模块应该被放置在我们输入它的程序的同一个目录中,或者在sys.path所列目录之
一。
#!/usr/bin/env python
def say():
if __name__=='__main__':
print 'this program is being run by itself'
else:
print 'this module is being imported from another module'
version='0.1'
#!/usr/lib/env python
import name #调用name模块
name.say()
print 'version',name.version用from..import:
#!/usr/bin/python
# Filename: mymodule_demo2.py
from mymodule import say, version
# Alternative:
say()
print 'Version', versionDir()函数:
可以使用内建的dir函数来列出模块定义的标识符。标识符有函数、类和变量。
例如上面定义的模块name.py:
>>> import name
>>> dir(name)
['__builtins__', '__doc__', '__file__', '__name__', '__package__', 'say', 'version']
注意,如果dir()参数为空:
>>> import name
>>> dir(name)
['__builtins__', '__doc__', '__file__', '__name__', '__package__', 'say', 'version']
>>> dir()
['__builtins__', '__doc__', '__name__', '__package__', 'name']
#这里import模块名称是列表的一部分
八、 python标准库:
一组模块组成了标准库。
九、python异常
十、python数据结构
三种内建的数据结构:数组、字典、元组列表:每个项目之间用逗号隔开。列表中的项目应该包括在方括号[]。
列表是 可变的 数据类型。
例子:手动的给列表添加item和删除:
#!/usr/bin/env python
def buy():
mylist=['potato','chilli','banana','apple']
print 'i have',len(mylist),'to buy\n'
print 'the items are:'
for i in mylist:
print I,
flag=True
while flag:
judge=raw_input('you can input yes or no:')
if judge=='yes':
goods=raw_input('maybe you need to buy more goods:')
mylist.append(goods)
else:
flag=False
for i in mylist:
print I,
print 'my shop list is now:',mylist
mylist.sort()
print 'the sorted shop list are',mylist
flag2=True
while flag2:
judge2=raw_input('if you want to delte?yes or no:')
if judge2=='yes':
print 'which itme you want to delte ',mylist
print 'you can choose the item from 0 to',len(mylist)-1
a=int(raw_input('the item is:'))
del mylist[a]
else:
flag2=False
print 'the remained shop list are:',mylist
buy()
在print语句的结尾使用了一个 逗号 来消除每个print语句自动打印的换行符。元组:
元组和字符串一样是 不可变的 即你不能修改元组。元组通过圆括号中用逗号分割的项目定义。
一个空的元组由一对空的圆括号组成,如myempty = ()。
你必须在第一个(唯一一个)项目后跟一个逗号,这样Python才能区分元组和表达式中一个带圆括号的对象。
元组最通常的用法是用在打印语句中。
元组的使用举例:
!/usr/lib/env python
def zoo():
zoo=('lion','tiger','rabbit','dragon','snake')
print 'the number of the zoo is',len(zoo)
for i in range(len(zoo)):
print zoo[i],
zoo_new=('dog','monkey',zoo)
print 'the animal number is ',len(zoo_new)
print 'the sencond animal is',zoo_new[1]
print 'the animals brought from old zoo are:',zoo_new[2]
print 'all animals:',zoo_new
a=(123)
print a
a=(123,)
print a
zoo()
输入结果:
the number of the zoo is 5
lion tiger rabbit dragon snake the animal number is 3
the sencond animal is monkey
the animals brought from old zoo are: ('lion', 'tiger', 'rabbit', 'dragon', 'snake')
all animals: ('dog', 'monkey', ('lion', 'tiger', 'rabbit', 'dragon', 'snake'))
123
(123,)
例子2:
元组用于打印中:
#!/usr/bin/python
# Filename: print_tuple.py
age = 22
name = 'Swaroop'
print '%s is %d years old' % (name, age)
print 'Why is %s playing with that python?' % name字典:
字典类似于你通过联系人名字查找地址和联系人详细情况的地址簿,即,我们把键(名字和值(详细情况)联系在一起。注意,键必须是唯一的。
十一、python函数函数定义:函数是可以重用的程序块。调用 函数:在你的程序的任何地方使用这个名称任意多次地运行这个语句块。
举例:
#!/usr/bin/python
# Filename: function1.py
def sayHello():
print 'Hello World!' # block belonging to the function
sayHello() # call the function函数的形参和实参:
参数在函数定义的圆括号对内指定,用逗号分割。局部变量:函数定义内声明变量。
使用global语句:可以使用同一个global语句指定多个全局变量。例如global x, y, z .
#!/usr/bin/python
# Filename: func_global.py
def func():
global x
print 'x is', x
x = 2
print 'Changed local x to', x
x = 50
func()
print 'Value of x is', x默认参数:在函数定义的形参名后加上赋值运算符(=)和默认值,从而给形参指定默认参数值。只有在形参表末尾的那些参数可以有默认参数值。
#!/usr/bin/python
# Filename: func_default.py
def say(message, times = 1):
print message * times
say('Hello')
say('World', 5)关键参数:通过命名来为这些参数赋值。
return语句:
#!/usr/bin/python
# Filename: func_return.py
def maximum(x, y):
if x > y:
return x
else:
return y
print maximum(2, 3)docstrings文档字符串:DocStrings是一个重要的工具,由于它帮助你的程序文档更加简单易懂。
#!/usr/bin/python
# Filename: func_doc.py
def printMax(x, y):
'''Prints the maximum of two numbers.
The two values must be integers.'''
x = int(x) # convert to integers, if possible
y = int(y)
if x > y:
print x, 'is maximum'
else:
print y, 'is maximum'
printMax(3, 5)
print printMax.__doc__
函数的第一个逻辑行的字符串是这个函数的 文档字符串
文档字符串的惯例是一个多行字符串,它的首行以大写字母开始,句号结尾。第二行是空行,
从第三行开始是详细的描述。
。请记住Python把 每一样东西 都作为对象,包括这个函数。这句话非常重要,通过上面的实例的自后一行代码可以提现。
十二、python变量
十三、python运算符与表达式:
+加号可以做算术运算,也可以连接2个字符串。
**幂
运算符优先级:
我建议你使用圆括号来分组运算符和操作数,以便能够明确地指出运算的先后顺序。
十四、软件开发的过程:
1. 什么(分析)
2. 如何(设计)
3. 编写(实施)
4. 测试(测试与调试)
5. 使用(实施或开发)
6. 维护(优化)
看不懂简明python教程_简明python教程的读书笔记(一)相关推荐
- 第一章 第一节:Python基础_认识Python
Python基础入门(全套保姆级教程) 第一章 第一节:Python基础_认识Python 1. 什么是编程 通俗易懂,编程就是用代码编写程序,编写程序有很多种办法,像c语言,javaPython语言 ...
- WMI 使用教程_.NET 入门教程
WMI 使用教程_.NET 入门教程 先介绍一下WMI 相关知识: 什么是WMI 呢? Windows 管理规范 (Windows Management Instrumentation ),它的主要 ...
- 进来在看《How Tomcat Works》这本书,将读书笔记贴在这里,好记性不如烂笔头。
进来在看<How Tomcat Works>这本书,将读书笔记贴在这里,好记性不如烂笔头. 最简单的一个服务器,一个很简单的结果. HttpServer构建ServerSocket,每 ...
- python好玩的教程_用python真的可以做很多有趣的事!我自己做了些小项目!大家看看...
如果你是一个喜剧爱好者,你实际上可以用Python自动下载所有的动画,没有一个下载. Python还可以帮助组织混乱的文件夹. 整理前: 后整理: 不要错过最新的消息. 我非常喜欢看电影.我想整理我电 ...
- python异步教程_【Python 异步编程入门】
本文是写给 JavaScript 程序员的 Python 教程. Python 的异步编程,其他人可能觉得很难,但是 JavaScript 程序员应该特别容易理解,因为两者的概念和语法类似.JavaS ...
- python数组切片教程_手把手numpy教程【二】——数组与切片
今天是Numpy专题的第二篇,我们来进入正题,来看看Numpy的运算. 上一篇文章当中曾经提到过,同样大小的数据,使用Numpy的运算速度会是我们自己写循环来计算的上百倍甚至更多.并且Numpy的AP ...
- python字符串_(Python基础教程之七)Python字符串操作
Python基础教程 在SublimeEditor中配置Python环境 Python代码中添加注释 Python中的变量的使用 Python中的数据类型 Python中的关键字 Python字符串操 ...
- python跳一跳教程_使用python玩跳一跳超详细使用教程
在上一篇文章里介绍了使用Python玩微信跳一跳的详细使用教程,不过依旧还是有很多小伙伴有各种各样的问题.为了让各位小伙伴都能使用黑科技,于是再做一个超详细教程.从Python的安装开始,手把手教你一 ...
- python认证教程_基于 Python+SendCloud 的邮箱认证
项目简介:为了方便日后密码遗忘进行修改或者进行消息推广等,现在各大网站在注册的时候总是免不了填写邮箱验证邮箱的流程.本门课程将通过使用 SendCloud 提供的 API 来实现一个本地版的邮箱认证过 ...
- python ai教程_带有Python的AI教程
python ai教程 带有Python的AI教程 (AI with Python Tutorial) PDF Version Quick Guide Resources Job Search Dis ...
最新文章
- 2022-2028年中国橡胶手套行业市场研究及前瞻分析报告
- 0001242: Steps to make RealTek DVB-T USB dongle...
- Makefile经典教程
- 解题:POI 2013 Triumphal arch
- hdu1355The Peanuts
- 发一个flash+PHP的简单上传代码
- WebService工具类调用远程接口服务时java.io.IOException: Server returned HTTP response code: 500 for URL XXX
- Swift学习笔记十二
- Test on 2018.10.21
- “ObjectContent`1”类型未能序列化内容类型“application/xml; charset=utf-8”的响应正文。
- .net 怎么在控制器action中返回一个试图_ASP.NET Core MVC/WebAPI中另辟蹊径的全局统一异常处理方式...
- 结合个人规划对物联网(IOT)的一点思考
- TiDB 产品常见问题
- 计算机不让更改所有的设置,虚拟机中为域内计算机设置统一主页并不允许域内用户修改(第四节)...
- 浅析eTS的起源和演进
- Java入门需要了解(面向对象之接口-十四)
- 无缘中兴(拒绝了offer)
- jQuery思维导图
- DNA 4. SCI 文章中基因组的突变信号(maftools)
- java环境变量配置验证,java环境变量配置
热门文章
- 字节跳动年薪百万的测试开发=“半个产品+半个开发”?
- 微信小程序选择图片优化_如何选择完美的图像格式来优化您的网站
- 盘点那些被AI换脸、一键“脱”衣所滥用的AI模型
- Spring Boot报错Description: A component required a bean of type 'com.rsjs.mapper.UserMapper' that cou
- C语言函数指针的几种用法【转】+gyy修改
- 电脑桌面点什么都是计算机,电脑桌面总是弹出广告怎么办?教你2种方法,轻松解决...
- java 空格变成问号_【转】空格变成问号的怪问题
- cannot load xxx.dll
- 九爷 带你玩转mysql引擎Mylsam
- Https网址在线安全检测网站