Python初学笔记

 //print自带回车功能,print语句末尾加一逗号可去除默认回车。正确乘法表如下:

for x in range(1,10):

... for y in range(1,x+1):

... z=y*x

... print y,"*",x,"=",z," ",

... print "\n"

三引号:注释段落,并且可以作为格式化的字符,即当时用print输出这些字符时,其格式保持不变。如果说在使用反斜线和使用括号元素换行之间做选择,最好使用括号,因为这样程序可读性会更好。

基本输入输出:name=raw_input('input your name:') print name raw_input用于读取字符串,input函数用来读取数字

显示自然字符串(原始字符串):如果想指示某些不需要如转义符那样的特殊处理的字符串,须在自然字符串前加r或R,原始字符串中不能以“\”结尾

Unicode字符串

Unicode是书写国际文本的标准方法。如果你想要用你的母语如北印度语或阿拉伯语写文本,那么你需要有一个支持Unicode的编辑器。类似地,Python允许你处理Unicode文本——你只需要在 字符串前加上前缀u或U。例如,u"This is a Unicode string."。记住,在你处理文本文件的时候使用Unicode字符 串,特别是当你知道这个文件含有用非英语的语言写的文本。

字符串是不可变的:这意味着一旦你创造了一个字符串,你就不能再改变它 了。

关于对象:记住,Python把在程序中用到的任何东西都称为 对象 。这是从广义上说的。因此我们不会说“某某 东西 ”,我们说“某个 对象 ”。就每一个东西包括数、字符串甚至函数都是对象这一点来 说,Python是极其完全地面向对象的。

逻辑行与物理行:物理行是你在编写程序时所 看见的。逻辑行是Python看见的单个语句。Python假定每个物理行对应一个逻辑行 。默认的,python希望每行都只有一条语句,那么物理行就相当于逻辑行。如果你想要在一个物理行中使用多于一个逻辑行,那么你需要使用分号(;)来特别地标明这种用法。分号表示一个逻辑行/语句的结束。

关于元组:元组和列表十分类似,只不过元组和字符串一样是 不可变的 即你不能修改元组。元组通过圆括号中用逗号分割的项目定义。元组通常用在使语句或用户定义的函数能够安全地采用一组值的时候,即被使用的元组的值不会改变。

函数中参数值的传递:按照声明函数时参数的顺序进行传递;按照参数名传递。但注意同时使用两种方法时,按顺序传递参数应在按参数名传递参数之前,否则会出错。

参数引用:

关于模块:如果你想要直接输入argv变 量到你的程序中(避免在每次使用它时打sys.),那么你可以使用from sys import argv语 句。如果你想要输入所有sys模块使用的名字,那么你可以使用from sys import *语 句。这对于所有模块都适用。一般说来,应该避免使用from..import而使用import语 句,因为这样可以使你的程序更加易读,也可以避免名称的冲突。在python中还可以通过使用内置函数reload重新载入模块,而且不需要关闭python,但在使用它重载模块时,该模块必须已经事先被导入。

dir()函数用来列出模块定义的标识符:当你为dir()提供一个模块名的时候,它返回模块定义的名称列表。如果不提供参数,它返回当前模块中定义的名称列表。

递归的两个经典(函数不只能调用其他函数,而且能调用自身):阶乘和幂

def factorial(n):

if n==1:

return 1

else:

return n*factorial(n-1)

def power(x,n):

if n==0:

return 1

else:

return x*power(x,n-1)

// assert??????? 注释乱码问题?????

从命令行启动脚本时可将#! /usr/bin/python加在脚本第一行,这样就不必显示调用python解释器了,直接用脚本名即可。

py的长整型范围远超C语言的长整型范围,它仅受限于用户计算机的虚拟内存总数

关于变量交换:python的多元赋值方式可以实现无需中间变量交换两个变量的值,如xy两变量交换用x,y=y,x即可。

关于列表解析:!!!!

sq=[x**2 for x in range(8) if not x%2]

for i in sq:

... print i

输出结果为:0 4 16 36(分在四行)

关于打开文件:r和U(代表使用通用换行符支持)模式打开的文件必须是已经存在的。a模式用来追加。w模式打开的文件若已存在则先清空,然后重建。+代表可读可写。

关于解决行分割符和其他文件系统的差异解决方法:导入os模块,那些变量会自动设置成正确的值。os模块5个很有用的属性:linesep:用于在文件中分割行的字符串;sep:用来分割文件路径名的字符串;pathsep:用来分割文件路径的字符串;surdir:当前工作目录的字符串名称;pardir:父目录的字符串名称。

有关模块:所有的模块都有能力来执行代码。最高级别的py语句,也就是没有缩进的,在模块被导入时就会执行,不管是不是真的需要执行。所以,通常只有主程序模块中有大量的顶级可执行代码,所有其他被导入的模块只应该有很少的顶级执行代码,所有的功能代码都应该封装在函数或类当中。

关于可变长度的参数:(参数组:ans = ops[op](*nums)中*:函数调用中使用*和**来分别指定元组和字典的元素作为非关键字和关键字参数的方法。)在函数调用时接受这样的参数。这语法允许函数接受在函数声明中定义的形参之外的参数,如果关键字和非关键字可变长参数在同一函数中出现,只要关键字字典是最后一个参数并且非关键字元组先于它之前出现即可。

eachline没什么特别的,就是一参数,就相当于for循环中的i;list.reverse:倒排链表中的元素;strip():去除两侧空格(不包括括号)的字符串;split()是join的逆方法,将字符串分割成序列;lower()返回字符串的小写形式

type():返回对象的类型(返回值本身是一个type对象)

os.walk返回一个三元组.其中dirnames是所有文件夹名字(不包含路径),filenames是所有文件的名字(不包含路径).parent表示父目录.如:

rootdir = "/home/dfb1234/python/py/"

for parent, dirnames, filenames in os.walk(rootdir):

for dirname in dirnames:

print "dirname is:"+dirname

getattr()取得对象的属性,当对象不存在所要取得的属性时,引发ArrtibutError异常,除非给出那个可选的默认参数,如:getattr(c,'bar','hello haha!'),c为对象,bar为欲取属性,hello haha为可选参数。setattr()赋值给对象的属性(要么加入一个新的属性,要么取代一个已经存在的属性)hasattr()检查一个对象是否有某一个属性。delattr()从对象中删除某个属性。

在解释器中使用django:manage.py shell命令,如果安装了ipython的话,此命令会默认使用它,如想使用默认解释器,需用manage.py shell plain

你可能感兴趣的:(python,django,职场,休闲)