在runoob.com点击访问进行Python学习时的一些笔记和心得
1-字典格式{ }
列表格式[ ]
元组格式( )
2-<>用于表示不等,返回bool值
^用于计算位异或
<<非循环左移
pi和e都是可以直接使用的
degrees(x)弧度转角度
radians(x)角度转弧度
数字输出格式化,表格来自runoob.com
3.1415926 | {:.2f} | 3.14 | 保留小数点后两位 |
3.1415926 | {:+.2f} | +3.14 | 带符号保留小数点后两位 |
-1 | {:+.2f} | -1.00 | 带符号保留小数点后两位 |
2.71828 | {:.0f} | 3 | 不带小数 |
5 | {:0>2d} | 05 | 数字补零 (填充左边, 宽度为2) |
5 | {:x<4d} | 5xxx | 数字补x (填充右边, 宽度为4) |
10 | {:x<4d} | 10xx | 数字补x (填充右边, 宽度为4) |
1000000 | {:,} | 1,000,000 | 以逗号分隔的数字格式 |
0.25 | {:.2%} | 25.00% | 百分比格式 |
1000000000 | {:.2e} | 1.00e+09 | 指数记法 |
13 | {:10d} | 13 | 右对齐 (默认, 宽度为10) |
13 | {:<10d} | 13 | 左对齐 (宽度为10) |
13 | {:^10d} | 13 | 中间对齐 (宽度为10) |
11 | '{:b}'.format(11) |
1011 |
进制 |
3-注意使用:符号,用于表示{ },进行函数体的编写,在编写时也需要注意缩进,必须保持一致,可以使用Tab进行调整
in / not in 用于对当前元素是否存在在列表、元组、字符串中进行判断
使用print语句时,在句末加入,符号,可以实现不换行
使用elif实现else if功能
使用:实现C语言中的{ }功能
可以使用索引实现对元组、列表和字典的访问,其中索引使用if num in range( len(变量名的形式)),使用时采用变量名[num] 的形式进行访问
无限循环在控制台中使用CTRL+C实现停止操作
pass就只是为了实现占位,本身并没有任何意义
4-注意区分is和==的意义,虽然都是进行比较,但is比较的相当于存储位置,==比较的是值
使用choice(range(num))实现随机返回一个0~9之间的整数
uniform(x,y)实现随机返回一个在x~y之间的实数
5-在for或while后加入else可以实现在循环结束后跳出进行下一步操作
由于开始时语法真的是太不熟悉了,所以在使用__init__进行定义时不停的跳object()takes no parameters的error,也提示一下后来的小朋友们,__符号它是英文半角_*2是两条啊
6-字符串,在行尾加入\表明续行
\a表示响铃
\b表示退格
\v纵向制表符
\t横向制表符
在‘’符号前加入r或R表示反转译,所有的转义符都不会被执行
在Python中同样可以输出类似C语言的格式化输出,举个栗子print “auihfui%d,joisdofa%s”%(12,‘nihongwa’),下面的表格就是可以使用的格式化内容,因为感觉整理的不错就直接从runoob.com上拿下来啦
%c | 格式化字符及其ASCII码 |
%s | 格式化字符串 |
%d | 格式化整数 |
%u | 格式化无符号整型 |
%o | 格式化无符号八进制数 |
%x | 格式化无符号十六进制数 |
%X | 格式化无符号十六进制数(大写) |
%f | 格式化浮点数字,可指定小数点后的精度 |
%e | 用科学计数法格式化浮点数 |
%E | 作用同%e,用科学计数法格式化浮点数 |
%g | %f和%e的简写 |
%G | %f 和 %E 的简写 |
%p | 用十六进制数格式化变量的地址 |
也可以采用参数设置的方法,有三种方式,分别为直接参数方式、字典方式以及列表方式。直接参数方式采用将变量名放置在{}中,在.format()中进行对变量定义的方式;采用字典设置参数的方法,先对字典进行定义,在引用时,直接使用字典关键字,并在.format()中对该字典进行引用,以(**字典名)为格式;列表采用类似字典的方法,不同之处在于前半部分的{}采用名加[索引]的方式,.format直接使用列表名
甚至可以使用str.format()的方式传入对象,没太看懂,所以直接使用runoob.com中使用的例子。
class AssignValue(object):
def __init__(self,value):
self.value=value
my_value=AssignValue(6)
print('value 为:{0.value}'.format(my_value))
可以使用{ }符号对{ }进行转译
在字符串定义的时候,可以使用三引号实现对字符串内容的换行定义
对字符串中的数字处理,isdigit()和isdecimal()函数都是用于检测内容是否为数字,返回bool值,
对isdigit()而言,True:Unicode数字、byte数字(单字节)、全角数字(双字节)、罗马数字
False:汉字数字
Error: 无
对isnumeric()而言,True: Unicode数字,全角数字(双字节),罗马数字,汉字数字
False: 无
Error: byte数字(单字节)
使用find函数与rfind函数都是可以进行查找操作的,不同支持在于一个是从左边开始找,一个是从右边开始找,但是要找的目标字符串都是从左到右开始定义的
使用splitlines当传入参数为False时,在打印结果时,将不包含\n转义符,如果使用True,则会将转义符打印出来
7-通过使用del函数,实现对列表中元素的删除
使用+实现对列表的拼接、组合
在截取中,使用正值从0开始计数,使用负值,则最后一位为-1
使用list()可以将元组转换为列表
使用append()在列表末尾添加新的对象
使用extend()可以使用新的列表对旧的列表进行扩充
使用remove(obj)移除列表中obj的第一个匹配项
使用pop(obj=list[-1])移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
8-在创建元组时,如果该元组最后只有一个元素,需要在最后加入一个逗号
元组一旦创建将无法修改,可以通过使用del将整个元组进行删除
对于任意无符号对象,以逗号隔开,默认为元组
使用tuple()将列表转化为元组
9-字典在创建后也可以进行修改
使用del将删除字典中的一条条目,使用.clear()将清空字典中的所有条目
.keys()将返回字典中所有的键;.values()将返回字典中所有的值
10-使用.localtime(time.time())可以获得当前时间,但显示并非格式化形式,使用asctime()可以获得可读时间模式,调用方式为time.asctime(time.localtime(time.time()))
可以使用time模块的strftime方法对日期进行格式化,和print进行搭配使用,用于定义用户自己的显示格式如:print time.strftime("%a %b %d %H:%M:%S %Y,time.localtime()),其中Python日期格式化符号可以在编写时进行查询
time.clock()用于返回CPU时间,可以用于衡量程序的耗时状况
time.sleep(secs)用于推迟线程运行时间
与time很像的calendar模块用于获取月历信息,如calendar.month(year,month)将返回该月的日历
11-使用def进行对函数的定义,无论最后是否返回内容,都需要在最后加入return,表示函数结束
在函数中使用参数传递时,变量并没有类型,它只是一种容器用于存放对象的地址
传入的参数存在会发生变化和不会发生变化的内容,除列表和字典外其余变量在传入后不会发生变化
使用关键字作为参数传入时,可以不完全按照定义时传入参数的顺序进行参数的传入,函数可以识别关键字
甚至可以使用不定长参数,使用加*号的变量用于存放所有未命名的变量参数,但对于不定长参数,要在函数后面记得处理
使用lambda关键字创建匿名函数,例sum=lambda arg1,arg2:arg1+arg2;调用时直接使用sum(1,2)即可
12-可以使用.py后缀形成模块,并且使用import语句引入模块,其格式为import module1[,module2[,...moduleN]]]
在使用引用模块中的函数时,调用格式为模块名.函数名
使用from从模块中导入一个指定的部分,from fib import fibonacci 表示从fib模块中导入fibonacci函数,如果导入全部内容,则使用from fib import *
搜索路径为system模块的sys.path变量中,可设置PYTHONPATH变量 set PYTHONPATH=c:\python27\lib;
如果要给函数内部的全局变量赋值,需要在全局变量前加入global关键词
使用dir函数,可以返回模块中定义过的函数的名字,其中__name__和__file__分别指向模块的名字和该模块的导入文件名
使用globals()函数返回该函数中所有能访问的全局名字,使用locals()函数返回该函数例能访问的命名
由于每次模块顶层的代码只会被执行一次,因此如果希望重新执行模块顶层使用的代码,可以使用reload()函数,reload(hello)
创建Python包,在包文件下创建许多的模块,在导入时使用from语句,from包.py模块名import函数名
13-使用raw_input和input函数可以实现从键盘输入的功能,raw_input("提示语句:"),返回键入内容,使用input()如果传入的参数外面加上了[ ]符号,则Python会对其进行运算,并将计算结果进行返回
使用open()函数创建一个file对象,并使用相关的方法对其进行调用读写,file object=open(file_name[,access_mode][,buffering])file_name表示文件名称字符串值,access_mode表明文件打开方式,buffering表示寄存行大小,0没有,1有,大于1表明寄存区缓冲大小,下表来自runoob.com,点击访问
r | 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 |
rb | 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。 |
r+ | 打开一个文件用于读写。文件指针将会放在文件的开头。 |
rb+ | 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。 |
w | 打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
wb | 以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
w+ | 打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
wb+ | 以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
a | 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
ab | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
a+ | 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 |
ab+ | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。 |
使用write()将字符串等写入打开的文件,该函数不会再字符串结尾自动添加换行符
使用read(count)读取文件中的字符串,如果指定count,会按照字节数进行读出,如果参数为空,则尽可能多的读取内容,无法确定读取长度
使用tell()返回当前操作位置
使用seek(offset[,from])可以用于改变当前操作位置,from设置为0,则从文章开头开始,设置为1,则从当前位置开始,设置为2,则以文件末尾开始
os模块可以对文件进行操作,rename()用于重新命名文件,需要先导入,os.rename(current_file_name,new_file_name)
remove()用于删除文件,文件名作为参数
mkdir()在当前目录下重新创建新的目录,os.mkdir("newdir")
rmdir()删除目录,参数为要删除目录名称
chdir()可以用于改变当前目录,直接写入目录路径即可
getcwd()返回当前工作目录