一. python开发基础

python开发环境

变量本质

1. python中的变量不需要先定义,再使用,可以直接使用,还有重新使用用以存储不同类型的值。2.变量命名遵循C命名风格。
3.大小写敏感。
4.变量引用计数。

5. del语句可以直接释放资源,变量名删除,引用计数减1
6.变量内存自动管理回收,垃圾收集。
7.指定编码在文件开头加入# ­­ coding: UTF­8 ­­或者#coding=utf­8

>>> a = 12
>>> print a
12
>>> id(a)
136776784
>>> type(a)
<class 'int'>
>>> b = 12.34
>>> print b
12.34
>>> id(b)
3071447616
>>> type(b)
<class 'float'>
>>> a = "itcast"
>>> print a
itcast
>>> id(a)
3071127936
>>> type(a)
<class 'str'>
>>> c = b
>>> print c
12.34
>>> id(c)
3071447616
>>> type(c)
<class 'float'>
>>> b = 12
>>> id(b)
136776784
>>> type(b)
<class 'int'>
>>> print b
12

#无需定义,直接使用,python解释器根据右值决定左侧类型#变量a在内存中的编号

#a的类型为int类型

#变量b在内存中所占内存编号#b的类型为float

#变量a从新指向一个字符串#变量a在内存中的编号为保存“itcast”地方,原来a所指向的内存编号里内容并没有立即释放

#变量a现在指向一个字符串

#变量c保存的内存中的编号和b一致

#解释器在内存中发现有保存12的这个单元,于是变量b指向了此单元,减少了存储空间的反复申请与释放

>>> print a
itcast
>>> del(a)
>>> print a
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'a' is not defined


简单函数

函数定义格式

defadd(x, y):z=x+y

returnz

res=add(3,5)printres
8

  1. def定义函数的关键字

  2. xy为形参,不需要类型修饰

  3. 函数定义行需跟':'

  4. 函数体整体缩进

  5. 函数可以拥有返回值,若无返回值,返回None,相当于C中的NULL

输入输出函数

输入和raw_input()内置函数
raw_input()从标准输入获取数据 返回的数据是字符串类型需要使用int()进行转换

输出
print函数
>>> print "%s is %dsthello world "%("tody",1)tody is 1sthello world
>>
重定向操作符
logfile = open('/tmp/mylog.txt','a')
print >>logfile,'error'
logfile.close()

局部变量和全局变量

代码1.局部变量作用域覆盖全局变量

defp_num():num=5

printnum

num=10p_num()printnum#结果: 5 10

代码2.函数内有局部变量定义,解释器不使用全局变量,局部变量的定义晚于被引用,报错

defp_num():printnum

num=5printnum

num=10p_num()printnum#结果出错

代码3.函数内部可以直接访问全局变量

defp_num():printnum


num=10p_num()
printnum
#结果: 10 10

代码4.函数内修改全局变量,使用global关键字

defp_num():globalnum

printnumnum=20printnum

num=10p_num()printnum

特殊变量

_xxx from module import *无法导入__xxx__系统定义的变量
__xxx类的本地变量

表达式

算术表达式

+a
­a
a + ba ­ ba**ba * ba / ba//ba%b

逻辑表达式

          not a
          a and b
          a or b
          a is b
          a is not b

关系表达式

运算结果为布尔类型

==等于
!=不等于
<>不等于(废弃)>大于
<小于
>=大于等于
<=小于等于

位运算

结果符号不变对结果符号取负ab
a
b

ab次幂
a乘以ba除以b,真正除,浮点数保留小数a除以b,向下取整
ab取余数

a的逻辑非boolab逻辑与boolab逻辑或boolab是同一个对象boolab不是同一个对象bool

~a按位取反


a<<n a左移na>>n a右移na&b ab按位与a|b ab按位或a^b ab按位异或

语法格式

缩进表示关系,函数,分支,循环语句后面带':'分支语句

#if­else

ifa>b:print("aaa")

else:print("bbb")

  #if­elif­else

ifa>b:print("a>b")

elifa==b:print("a==b")

else:print("a<b")

循环语句

python里的控制语句和循环语句和C中的非常相似,毕竟python是用C实现的。 注意语句后面的':'不要丢掉,这一点C/C++程序员刚上手python的时候是最容易犯的错误。

while判断条件:执行语句

var=1
whilevar==1:#该条件永远为true,循环将无限执行下去

num=raw_input("Enter a number :")print"You entered: %d", num

print"Good bye!"
Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串。

          for iterating_var in sequence:

执行语句

forletterin'Python':# First Exampleprint'Current Letter :', letter

fruits=['banana','apple','mango']
forfruitinfruits:# Second Example

print'Current fruit :', fruit
python中,for ... else表示这样的意思,for中的语句和普通的没有区别,else中的语句会在循环正常执行完(即for不是通过

break跳出而中断的)的情况下执行,while ... else 也是一样。

count=0
whilecount<5:

print(count," is less than 5")count=count+1


else:
print(count," is not less than 5")

以上实例输出结果为:

          0 is less than 5
          1 is less than 5
          2 is less than 5
          3 is less than 5
          4 is less than 5
          5 is not less than 5

break

Python break语句,就像在C语言中,打破了最小封闭forwhile循环。break语句用来终止循环语句,即循环条件没有False条件或者序列还没被完全递归完,也会停止执行循环语句。break语句用在whilefor循环中。如果您使用嵌套循环,break语句将停止执行最深层的循环,并开始执行下一行代码。

continue

Python continue语句跳出本次循环,而break跳出整个循环。
continue语句用来告诉Python跳过当前循环的剩余语句,然后继续进行下一轮循环。continue语句用在whilefor循环中。

list列表
序列都可以进行的操作包括索引,切片,加,乘,检查成员。 序列中的每个元素都分配一个数字­它的位置,或索引,第一个索

引是0,第 个索引是1,依此类推。
列表和元组 者均能保存任意类型的
python对象,索引访问元素从开始 列表元素用[]包括,元素个数,值都可以改变 元组元素用()包括

通过切片[] [:]得到子集,此操作同于字符串相关操作 切片使用的基本样式[下限:上限:步长]访问列表中的值

      >>>aList = [1,2,3,4]
      >>>aList
      [1,2,3,4]
      >>>aList[0]
      1
      >>>aList[2:]
      [3,4]
      >>>aList[:3]
      [1,2,3]

更新列表中的值

      >>>aList[1] = 5
      >>>aList
      [1,5,3,4]

删除列表中的值

      >>> del aList[1]
      >>>aList
      [1,3,4]

Python列表脚本操作符


列表对+*的操作符与字符串相似。+号用于组合列表,*号用于重复列表。

Python表达式
len([1, 2, 3])
[1, 2, 3] + [4, 5, 6]
['Hi!'] * 4
3 in [1, 2, 3]
for x in [1, 2, 3]: print x, 1 2 3
迭代

Python列表截取Python的列表截取与字符串操作类型,如下所示:

      L = ['spam', 'Spam', 'SPAM!']

操作:
Python表达式 结果 描述

L[2]
L[­2]
L[1:]

'SPAM!'读取列表中第三个元素
'Spam'读取列表中倒数第 个元素
['Spam', 'SPAM!']从第 个元素开始截取列表

Python列表函数&方法Python包含以下函数:

序号 函数

  1.       1    cmp(list1, list2)
    
  2. 2  len(list)

  3. 3  max(list)

  4. 4  min(list)

  5. 5  list(seq)

Python包含以下方法:

序号 方法

比较两个列表的元素
列表元素个数
返回列表元素最大值
返回列表元素最小值
将元组转换为列表
在列表末尾添加新的对象
统计某个元素在列表中出现的次数
在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
从列表中找出某个值第一个匹配项的索引位置
     将对象插入列表
     移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
     移除列表中某个值的第一个匹配项
     反向列表中元素
     对原列表进行排序

结果 描述
3长度
[1, 2, 3, 4, 5, 6]组合
['Hi!', 'Hi!', 'Hi!', 'Hi!']重复True元素是否存在于列表中

  1. 1    list.append(obj)
    
  2. 2    list.count(obj)
    
  3. 3    list.extend(seq)
    
  4. 4    list.index(obj)
    
  5. 5    list.insert(index, obj)
    
  6. 6    list.pop(obj=list[­1])
    
  7. 7    list.remove(obj)
    
  1.       8    list.reverse()
    
  2.       9    list.sort([func])
    

内建range函数

range(start,end,step)
>>> range(1,5) #
代表从15(不包含5)
[1, 2, 3, 4]
>>> range(1,5,2) #
代表从15,间隔2(不包含5)[1, 3]
>>> range(5) #
代表从05(不包含5)
[0, 1, 2, 3, 4]
>>>for eachNum in [0,1,2]:
... print eachNum
>>>for eachNum in range(3):
... print eachNum
>>>mystr = 'abc'
>>>for c in mystr:
... print crange()
函数还经常和len()函数一起用于字符串索引

元组Tuple
Python的元组与列表类似,不同之处在于元组的元素不能修改。也可进行分片 和 连接操作.元组使用小括号,列表使用方括号。


      >>>aTuple = ('et',77,99.9)
      >>>aTuple
      ('et',77,99.9)

访问元组

      >>>aTuple[2]
      99

修改元组

>>>aTuple[1] = 5 #真的不能修改呀报错啦
>>>tup2 = (1, 2, 3, 4, 5, 6, 7 )>>>print "tup2[1:5]: ", tup2[1:5]>>>tup2[1:5]: (2, 3, 4, 5)

      >>>tup3 = tup2 + aTuple;
      >>>print tup3
      (1, 2, 3, 4, 5, 6, 7,'et',77,99.9)

删除元素

元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组元组运算符

与字符串一样,元组之间可以使用+号和*号进行运算。这就意味着他们可以组合和复制,运算后会生成一个新的元组。

Python表达式 结果 描述
len((1, 2, 3)) 3计算元素个数
(1, 2, 3) + (4, 5, 6) (1, 2, 3, 4, 5, 6)连接['Hi!'] * 4 ['Hi!', 'Hi!', 'Hi!', 'Hi!'] 复制3 in (1, 2, 3) True 元素是否存在
for x in (1, 2, 3): print x, 1 2 3迭代

元组索引,截取

因为元组也是一个序列,所以我们可以访问元组中的指定位置的元素,也可以截取索引中的一段元素.

L = ('spam', 'Spam', 'SPAM!')Python表达式 结果 描述

L[2]
L[­2]
L[1:]

'SPAM!'读取第三个元素
'Spam'反向读取;读取倒数第 个元素('Spam', 'SPAM!') 截取元素

无关闭分隔符

    任意无符号的对象,以逗号隔开,默认为元组,如下实例:

print 'abc', ­4.24e93, 18+6.6j, 'xyz';x, y = 1, 2;
print "Value of x , y : ", x,y;
以上实例允许结果:

      abc ­4.24e+93 (18+6.6j) xyz
      Value of x , y : 1 2

元组内置函数


Python元组包含了以下内置函数序号 方法及描述

  1.       1    cmp(tuple1, tuple2)
    
  2. 2  len(tuple)

  3. 3  max(tuple)

  4. 4  min(tuple)

  5. 5  tuple(seq)

多维元祖访问的示例

  >>> tuple1 = [(2,3),(4,5)]
  >>> tuple1[0]
  (2, 3)
  >>> tuple1[0][0]
比较两个元组元素。
计算元组元素个数。
返回元组中元素最大值。
返回元组中元素最小值。
将列表转换为元组。
  2
  >>> tuple1[0][2]
  Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
  IndexError: tuple index out of range
  >>> tuple1[0][1]
  3
  >>> tuple1[2][2]
  Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
  IndexError: list index out of range
  >>> tuple2 = tuple1+[(3)]
  >>> tuple2
  [(2, 3), (4, 5), 3]
  >>> tuple2[2]
  3
  >>> tuple2[2][0]
  Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
  TypeError: 'int' object is not subscriptable

字典Dictionary
字典是python中的映射数据类型,,由键值(key­value)构成,类似于关联数组或哈希表. key一般以数字和字符串居多,值则可以是任意

类型的python对象,如其他容器模型。 字典元素用大括号 {}包括.比如:>>>dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}

  >>>aDict = {'host':'noname'}

每个键与值用冒号隔开(:),每对用逗号分割,整体放在花括号中({})。 键key必须独一无 ,但值则不必。值value可以取任何数据类型,但必须是不可变的

访问字典里的值

  >>>aDict['host']
  'noname'
  >>> for key in aDict
  ... print key,aDict[key]
  ...
  host noname
  port 80
  >>>aDict.keys()
  ['host','port']
  >>>aDict.values()

修改字典

向字典添加新内容的方法是增加新的键/值对,修改或删除已有键/值对.


>>>aDict['port'] = 80 #如果有port key,值将会被更新 否则会被新建一个port key>>>aDict

      {'host':'noname','port':80}

删除字典元素

能删单一的元素也能清空字典,清空只需一项操作.显示删除一个字典用del命令

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};del dict['Name']; #删除键是'Name'的条目
dict.clear(); #清空词典所有条目
del dict ; #删除词典

字典键(key)的特性字典值可以没有限制地取任何python对象,既可以是标准的对象,也可以是用户定义的,但键不行。

两个重要的点需要记住:1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住

      >>>dict = {'Name': 'Zara', 'Age': 7, 'Name': 'Manni'};
      >>>print "dict['Name']: ", dict['Name'];
      >>>dict['Name']:  Manni

2)键必须不可变,所以可以用数,字符串或元组充当,所以用列表就不行

      >>>dict = {['Name']: 'Zara', 'Age': 7};
      >>>print "dict['Name']: ", dict['Name'];
          raceback (most recent call last):
          File "test.py", line 3, in <module>
      >>>dict = {['Name']: 'Zara', 'Age': 7};
          TypeError: list objects are unhashable

字典内置函数&方法Python字典包含了以下内置函数:

序号 函数及描述

  1.   1    cmp(dict1, dict2)
    
  2. 2  len(dict)

  3. 3  str(dict)

  4.   4    type(variable)
    

Python字典包含了以下内置函数:

序号 函数及描述

比较两个字典元素。
计算字典元素个数,即键的总数。
输出字典可打印的字符串表示。
返回输入的变量类型,如果变量是字典就返回字典类型。

删除字典内所有元素
返回一个字典的浅复制创建一个新字典,以序列
seq中元素做字典的键,val为字典所有键对应的初始值

  1. 1    radiansdict.clear()
    
  2. 2    radiansdict.copy()
    
  3. 3    radiansdict.fromkeys()
    
  4. 4  radiansdict.get(key, default=None)返回指定键的值,如果值不在字典中返回default

  5. 5  radiansdict.has_key(key)如果键在字典dict里返回true,否则返回false

  6. 6  radiansdict.items()以列表返回可遍历的(,)元组数组

  7. 7  radiansdict.keys()以列表返回一个字典所有的键

  8. 8    radiansdict.setdefault(key, default=None)
    

get()类似,但如果键不已经存在于字典中,将会添加键并将值设为default

  1. 9  radiansdict.update(dict2)把字典dict2的键/值对更新到dict

  2. 10  radiansdict.values()以列表返回字典中的所有值

print dict['one'] #输出键为'one'的值print dict[2] #输出键为2的值
print tinydict #输出完整的字典

print tinydict.keys() #输出所有键print tinydict.values() # 输出所有值


Python数字类型转换

      int(x [,base ])
      long(x [,base ])
      float(x )
      complex(real [,imag ])
      str(x )
      repr(x )
      eval(str )
      tuple(s )
      list(s )
      chr(x )
      unichr(x )
      ord(x )
      hex(x )
      oct(x )

Python数学函数

x转换为一个整数将x转换为一个长整数

x转换到一个浮点数
创建一个复数
将对象
x转换为字符串
将对象
x转换为表达式字符串用来计算在字符串中的有效Python表达式,并返回一个对象将序列s转换为一个元组

将序列s转换为一个列表将一个整数转换为一个字符将一个整数转换为Unicode字符将一个字符转换为它的整数值将一个整数转换为一个十六进制字符串将一个整数转换为一个八进制字符串

函数

abs(x)
ceil(x)
cmp(x, y)
exp(x)
fabs(x)
floor(x)
log(x)
log10(x)

返回值(描述)
返回数字的绝对值,如abs(­10)返回10返回数字的上入整数,如math.ceil(4.1)返回5如果x<y返回­1,如果x==y返回0,如果x>y返回1返回ex次幂(ex),math.exp(1)返回2.718281828459045返回数字的绝对值,如math.fabs(­10)返回10.0

返回数字的下舍整数,如math.floor(4.9)返回4math.log(math.e)返回1.0,math.log(100,10)返回2.0

返回以10为基数的x的对数,如math.log10(100)返回2.0x2,...)返回给定参数的最大值,参数可以为序列。
x2,...)返回给定参数的最小值,参数可以为序列。

max(x1,
min(x1,
modf(x)
pow(x, y) x**y
运算后的值。
round(x [,n])返回浮点数x的四舍五入值,如给出n值,则代表舍入到小数点后的位数。sqrt(x)返回数字x的平方根,数字可以为负数,返回类型为实数,如math.sqrt(4)返回2+0j

Python随机数函数随机数可以用于数学,游戏,安全等领域中,还经常被嵌入到算法中,用以提高算法效率,并提高程序的安全性。

函数 描述
choice(seq)从序列的元素中随机挑选一个元素,比如random.choice(range(10)),从09中随机挑选一个整数。randrange ([start,] stop [,step]) 从指定范围内,按指定基数递增的集合中获取一个随机数,基数缺省值为1

返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示。

random()
seed([x])
shuffle(lst)
uniform(x, y)

随机生成下一个实数,它在[0,1)范围内。改变随机数生成器的种子seed。如果你不了解其原理,你不必特别去设定seedPython会帮你选择seed

将序列的所有元素随机排序随机生成下一个实数,它在[x,y]范围内。 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值