对Python的基本知识进行了重温和总结。(省略和C++相近的以及深刻了解的内容)
1.一般用反斜杠 / 将Python的一行语句分为多行显示
total = item_one +\
item_two+\
item_three
2.raw_input 输入内容 遇见回车终止并跳出
raw_input("\n\nPress the enter key to exit.")
3.数据类型之List -- 列表
个人理解类似C++中的数组
list = [ 'Ma', 786 , 2.23, 'john', 70.2]
tinylist= [123, 'john']print list #输出完整列表
print list[0] #输出列表的第一个元素
print list[1:3] #输出第二个至第三个元素
print list[2:] #输出从第三个开始至列表末尾的所有元素
print tinylist * 2 #输出列表两次
print list + tinylist #打印组合的列表
4.数据类型之 Tuple -- 元组
相当于一个只读的List
tuple = ( 'runoob', 786 , 2.23, 'john', 70.2)
tinytuple= (123, 'john')print tuple #输出完整元组
print tuple[0] #输出元组的第一个元素
print tuple[1:3] #输出第二个至第三个的元素
print tuple[2:] #输出从第三个开始至列表末尾的所有元素
print tinytuple * 2 #输出元组两次
print tuple + tinytuple #打印组合的元组
5.数据类型之Dictionary -- 字典
dict ={}
dict['one'] = "This is one"dict[2] = "This is two"tinydict= {'name': 'john','code':6734, 'dept': 'sales'}print dict['one'] #输出键为'one' 的值
print dict[2] #输出键为 2 的值
print tinydict #输出完整的字典
print tinydict.keys() #输出所有键
print tinydict.values() #输出所有值
6.判断数据类型 之 type 与 isinstance
>>> classA:
...pass...>>> classB(A):
...pass...>>>isinstance(A(), A)
True>>> type(A()) ==A
False>>>isinstance(B(), A)
True>>> type(B()) ==A
False
区别就是:
type()不会认为子类是一种父类类型。
isinstance()会认为子类是一种父类类型。
7.逻辑运算符
x and y -- x为False , 返回False,反之,返回y
x or y -- x非零,返回x,否则返回y
not x -- x为True,返回False,x为False,返回True
8.成员运算符
in 如果在指定的序列中找到值返回 True,否则返回 False。
not in 如果在指定的序列中没有找到值返回 True,否则返回 False。
9.身份运算符
is -- is 是判断两个标识符是不是引用自一个对象
is not -- is not 是判断两个标识符是不是引用自不同对象
10.条件语句(if)
if判断条件1:
执行语句1……elif判断条件2:
执行语句2……elif判断条件3:
执行语句3……else:
执行语句4……
11.循环之while
count =0while (count < 9):print 'The count is:', count
count= count + 1
print "Good bye!"
12.循环之for
for letter in 'Python': #第一个实例
print '当前字母 :', letter
fruits= ['banana', 'apple', 'mango']for fruit in fruits: #第二个实例
print '当前水果 :', fruitprint "Good bye!"
13.循环嵌套
嵌套循环求出100以内的素数
i = 2
while(i < 100):
j= 2
while(j <= (i/j)):if not(i%j): breakj= j + 1
if (j > i/j) : print i, "是素数"i= i + 1
print "Good bye!"
14.Python字符串的三引号
python中三引号可以将复杂的字符串进行复制:
python三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符。
三引号的语法是一对连续的单引号或者双引号(通常都是成对的用)。
15.关于Python中 Unicode 和 ASCII
计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理。Unicode把所有语言都统一到一套编码里,这样就不会再有乱码问题了。Unicode标准也在不断发展,但最常用的是用两个字节表示一个字符(如果要用到非常偏僻的字符,就需要4个字节)。现代操作系统和大多数编程语言都直接支持Unicode。
ASCII编码和Unicode编码的区别:
ASCII编码是1个字节,而Unicode编码通常是2个字节,举例如下。
字母 A 用ASCII编码是十进制的65,二进制的01000001;
字符 0 用ASCII编码是十进制的48,二进制的00110000,注意字符 '0' 和整数
0 是不同的;
汉字 中 已经超出了ASCII编码的范围,用Unicode编码是十进制的20013,二进制的01001110 00101101。
如果把ASCII编码的 A 用Unicode编码,只需要在前面补0就可以,因此, A 的Unicode编码是00000000 01000001。
16.datetime模块获取时间
importdatetime
i=datetime.datetime.now()print ("当前的日期和时间是 %s" %i)print ("ISO格式的日期和时间是 %s" %i.isoformat() )print ("当前的年份是 %s" %i.year)print ("当前的月份是 %s" %i.month)print ("当前的日期是 %s" %i.day)print ("dd/mm/yyyy 格式是 %s/%s/%s" %(i.day, i.month, i.year) )print ("当前小时是 %s" %i.hour)print ("当前分钟是 %s" %i.minute)print ("当前秒是 %s" %i.second)
17.Python函数
函数参数的说明:
在 python 中,strings, tuples, 和 numbers 是不可更改的对象,而 list,dict 等则是可以修改的对象。
不可变类型:变量赋值 a=5 后再赋值 a=10,这里实际是新生成一个 int 值对象 10,再让 a 指向它,而 5 被丢弃,不是改变a的值,相当于新生成了a。
可变类型:变量赋值 la=[1,2,3,4] 后再赋值 la[2]=5 则是将 list la 的第三个元素值更改,本身la没有动,只是其内部的一部分值被修改了。
python 函数的参数传递:
不可变类型:类似 c++ 的值传递,如 整数、字符串、元组。如fun(a),传递的只是a的值,没有影响a对象本身。比如在 fun(a)内部修改 a 的值,只是修改另一个复制的对象,不会影响 a 本身。
可变类型:类似 c++ 的引用传递,如 列表,字典。如 fun(la),则是将 la 真正的传过去,修改后fun外部的la也会受影响
lamda匿名函数:只包含一个语句
#可写函数说明
sum = lambda arg1, arg2: arg1 +arg2;#调用sum函数
print "相加后的值为 :", sum( 10, 20)print "相加后的值为 :", sum( 20, 20 )
18.变量的作用域
定义在函数内部的变量拥有一个局部作用域,定义在函数外的拥有全局作用域。
局部变量只能在其被声明的函数内部访问,而全局变量可以在整个程序范围内访问。调用函数时,所有在函数内声明的变量名称都将被加入到作用域中。如下实例:
total = 0; #这是一个全局变量#可写函数说明
defsum( arg1, arg2 ):#返回2个参数的和."
total = arg1 + arg2; #total在这里是局部变量.
print "函数内是局部变量 :", totalreturntotal;#调用sum函数
sum( 10, 20);print "函数外是全局变量 :", total
结果 局部变量为 30 全局变量为0
## 全局变量想作用于函数内,需加 global ##
19.导入模块相关
当你导入一个模块,Python 解析器对模块位置的搜索顺序是:
1、当前目录
2、如果不在当前目录,Python 则搜索在 shell 变量 PYTHONPATH 下的每个目录。
3、如果都找不到,Python会察看默认路径。UNIX下,默认路径一般为/usr/local/lib/python/。
模块搜索路径存储在 system 模块的 sys.path 变量中。变量里包含当前目录,PYTHONPATH和由安装过程决定的默认目录。
20.包
包是一个分层次的文件目录结构,它定义了一个由模块及子包,和子包下的子包等组成的 Python 的应用环境。
简单来说,包就是文件夹,但该文件夹下必须存在 __init__.py 文件, 该文件的内容可以为空。__int__.py用于标识当前文件夹是一个包。