Python学习笔记(3)

简介: 版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/3639706 Pyth...
版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/3639706

Python学习笔记(3)



1)Statements and Syntax
Hash mark (#)表示Python注释
NEWLINE(/n)是标准行操作符
Backslash(/)表示一行继续
Semicolon(;)在同一行连接两个语句
Colon(:)从suite中分隔首行
Suites通过缩进进行限制
Python文件以模块进行组织


2)Variable Assignment
等号(=)是赋值操作符
>>> anInt = -12
>>> String = 'cart'
>>> aFloat = -3.1415*(5.0**2)
>>> anotherString = 'shop'+'ping'
>>> aList = [3.14e10, '2nd elmt of a list', 8.82-4.371j]
多个赋值
>>> x,y,z = 1,2,'a string'
>>> x
1
>>> y
2
>>> z
'a string'

例子:
交换x和y的值
>>> (x,y) = (5,6)
>>> x
5
>>> y
6
>>> (x,y) = (y,x)
>>> x
6
>>> y
5


3)Identifiers
有效的Python标识符:
 - 第一个字符必须是字母或下划线
 - 其后的字符可以是字母、数字或下划线
 - 大小写敏感
 
关键字:目前有28个关键字
and elif global or assert else if pass
break except import print class exec in raise
continue finally is return def for lambda try
del from not while

Built-ins
Python内建的都应该做关键字处理,作为系统保留对待。
Python不支持标识符重载。

特殊的下划线标识符
Python指定了特殊的带下划线前缀或后缀的变量。
_xxx 不用‘ from module import * ’ 导入
_xxx__ 系统定义的名字
__xxx 请求私有名


4)Document
Python提供了一个机制,文档字符串能通过__doc__特殊变量动态取回。在模块、类声明、或函数声明的第一个未赋值字符串能通过使用obj.__doc__访问,obj代表模块、类或函数名。

Indentation
缩进在Python中扮演了一个重要角色。缩进4个字符最佳,缩进代表某个块。

Module Structure and Layout
模块有简单的物理方式和逻辑组织。在每个文件内,应该建立一致的、易读的结构。最好是按如下进行布局:
  -startup line 开始行
  -module documentation 模块说明文档
  -module import 模块导入部分
  -variable declarations 变量声明
  -class declarations 类声明
  -function declarations 函数声明
  -"main" body 模块主体部分

例子:
# /usr/bin/env python
"this is a test module"
import sys
import string
debug = 1
class FooClass:
  "Foo Class"
  pass
def test():
  "test function"
  foo = FooClass
  if debug:
  print 'ran test()'
if __name__ == '__main__':
  test()

在主体部分创建测试
良好的编程习惯是为整个应用程序提供一套测试集。


5)Memory Management
内存管理
  -变量并不提前声明
  -变量类型不需声明
  -在程序员部分无内存管理
  -变量名可回收再用
  -del语句允许清晰地重新分配
一旦某数据对象不再需要时,Python的垃圾回收器会自动释放该数据对象。此行为无需编程人员操心。
Python通过跟踪对象的引用数量,来决定对象是否需要。这称为“引用计算”。

del语句
del语句移除一对象的单个引用,其语法如下:
del obj1[, obj2 [,...objN...]]
例如:
# 初始化string对象,设置引用数为1
foo1 = 'foobar'
# 通过赋值给另一变量,增加引用数
foo2 = foo1 # 创建一个别名
# 通过函数调用再次增加引用数
check_val(foo1)
# 从命名空间移除foo2;'foobar'对象的引用数减少
del foo2
# 移除'foobar'对象的最后一个引用,减少其引用数为0,最终导致对象变成不可访问的。
del foo1


6)第一个Python程序
#!/usr/bin/env python

"fgrepwc.py -- searches for string in text file"

import sys
import string

# print usage and exit
def usage():
  print "usage: fgrepwc [-i] string file"
  sys.exit(1)

# does all the work
def filefind(word, filename):
   
  #reset word count
  count = 0
   
  # can we open file? if so, return file handle
  try:
  fh = open(filename, 'r')
  # if not, exit
  except:
  print filename, ":", sys.exc_info()[1]
  usage()
   
  # read all file lines into list and close
  allLines = fh.readlines()
  fh.close()
   
  # iterate over all lines of file
  for eachLine in allLines:
  # search each line for the word
  if string.find(eachLine, word)>-1:
  count = count+1;
  print eachLine,
   
  # when complete, display line count
  print count
   
#validates arguments and calls filefind()
def checkargs():
  # check args; 'argv' comes from 'sys' module
  argc = len(sys.argv)
  if argc != 3:
  usage()
  # call fgrepwc.filefind() with args
  filefind(sys.argv[1], sys.argv[2])
   
#execute as application
if __name__ == '__main__':
  checkargs()

目录
相关文章
|
2月前
|
网络协议 Java Linux
PyAV学习笔记(一):PyAV简介、安装、基础操作、python获取RTSP(海康)的各种时间戳(rtp、dts、pts)
本文介绍了PyAV库,它是FFmpeg的Python绑定,提供了底层库的全部功能和控制。文章详细讲解了PyAV的安装过程,包括在Windows、Linux和ARM平台上的安装步骤,以及安装中可能遇到的错误和解决方法。此外,还解释了时间戳的概念,包括RTP、NTP、PTS和DTS,并提供了Python代码示例,展示如何获取RTSP流中的各种时间戳。最后,文章还提供了一些附录,包括Python通过NTP同步获取时间的方法和使用PyAV访问网络视频流的技巧。
452 4
PyAV学习笔记(一):PyAV简介、安装、基础操作、python获取RTSP(海康)的各种时间戳(rtp、dts、pts)
|
2月前
|
Python
Socket学习笔记(二):python通过socket实现客户端到服务器端的图片传输
使用Python的socket库实现客户端到服务器端的图片传输,包括客户端和服务器端的代码实现,以及传输结果的展示。
173 3
Socket学习笔记(二):python通过socket实现客户端到服务器端的图片传输
|
2月前
|
JSON 数据格式 Python
Socket学习笔记(一):python通过socket实现客户端到服务器端的文件传输
本文介绍了如何使用Python的socket模块实现客户端到服务器端的文件传输,包括客户端发送文件信息和内容,服务器端接收并保存文件的完整过程。
178 1
Socket学习笔记(一):python通过socket实现客户端到服务器端的文件传输
|
2月前
|
关系型数据库 MySQL 数据库
Mysql学习笔记(四):Python与Mysql交互--实现增删改查
如何使用Python与MySQL数据库进行交互,实现增删改查等基本操作的教程。
73 1
|
2月前
|
Ubuntu Linux Python
Ubuntu学习笔记(六):ubuntu切换Anaconda和系统自带Python
本文介绍了在Ubuntu系统中切换Anaconda和系统自带Python的方法。方法1涉及编辑~/.bashrc和/etc/profile文件,更新Anaconda的路径。方法2提供了详细的步骤指导,帮助用户在Anaconda和系统自带Python之间进行切换。
121 1
|
2月前
|
索引 Python
Python学习笔记编程小哥令狐~持续更新、、、(上)
Python学习笔记编程小哥令狐~持续更新、、、(上)
53 2
|
2月前
|
存储 Python
Python学习笔记编程小哥令狐~持续更新、、、 (下)
Python学习笔记编程小哥令狐~持续更新、、、 (下)
35 1
|
2月前
|
存储 Python
【免费分享编程笔记】Python学习笔记(二)
【免费分享编程笔记】Python学习笔记(二)
48 0
【免费分享编程笔记】Python学习笔记(二)
|
2月前
|
Java 编译器 Go
Python学习笔记--- day01计算机基础和环境搭建(一)
Python学习笔记--- day01计算机基础和环境搭建(一)
47 2
|
2月前
|
程序员 编译器 Python
Python学习笔记--- day01计算机基础和环境搭建(二)
Python学习笔记--- day01计算机基础和环境搭建(二)
51 1