您的位置:首页 > 编程语言 > Python开发

python编程基础-数据类型和函数

2016-04-06 08:41 645 查看

python中的变量

1.python的变量不需要定义,在使用时可以直接使用,还有重新使用使用用以存储不同类型的值。

2.变量命名遵循C命名风格。

3.大小写敏感

4.变量引用计数。

5.del语句可以直接释放资源,变量名删除,引用计数减1

6.变量内存自动管理回收,垃圾收集。

7.指定编码在文件开头中加入#--coding:UTF-8--或者#coding=utf-8

python2.7 测试如下:

>>> a = 12 #无需定义,直接使用,python解释器根据右值决定左侧类型

>>> print a

12

>>> id(a) #变量a在内存中的编号

31951520L

>>> type(a) #a的类型为int类型

<type 'int'>

>>> b = 12.34

>>> print b

12.34

>>> id(b) #变量b在内存中所占内存编号

46195712L

>>> print b

12.34

>>> type(b)

<type 'float'> #b的类型为float

>>> a = "xiaozhihui" #变量a重新指向一个字符串

>>> print a

xiaozhihui

>>> id(a) #变量a在内存中的编号为保存“xiaozhihui”地方,原来a所指向的内存编号里内容并没有立即释放

46189616L

>>> type(a) #变量a现在指向一个字符串

<type 'str'>

>>> b=12 #b也赋值为12

>>> id(b)

31951520L #内存中为12 的地址内存并没有立即释放,python实现优化减少malloc和 free的次数

>>> del b #删除b (引用计数减1)

>>> e =12 #e赋值为12

>>> id(e)

31951520L #b和e的地址一样,并没有立即释放,解释器内存回收机制(采用引用计数,类似于java垃圾回收)

>>>  

python中的简单函数

函数定义格式

>>> def add(x,y):
s = x + y
return s

>>> res = add(2,4)

>>> print res

6
>>>

1.def定义函数的关键字

2.x和y为形参,不需要类型修饰

3.函数定义需跟":"

4.函数体整体缩进

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

局部变量和全局变量

1局部变量作用域覆盖全局变量

>>> def print_num():
num = 5
print num

>>> num = 8

>>> print_num()

5

>>> print num

8

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

>>> def print_n():
print num
num = 3
print num

>>> num = 9

>>> print_n #函数在内存中地址

<function print_n at 0x0000000002BFEE48>

>>> print_n()

#报错

Traceback (most recent call last):

  File "<pyshell#45>", line 1, in <module>

    print_n()

  File "<pyshell#42>", line 2, in print_n

    print num

UnboundLocalError: local variable 'num' referenced before assignment

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

def print_num():

    print num

num = 3

print_num()

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

def print_num():
global num
print num
num = 20
print num

num=10
print_num()
print num<
c3ee
/div>

10
20
20

特殊变量
__xxx from moudle import '''无法导入
__xxx__ 系统定义的变量
__xxx 类的本地变量

算术表达式

+a 结果符号不变
-a 对结果符号取负
a + b a加b
a**b a的b次幂
a * b a乘以b
a/b a除以b,真正除,浮点数保留小数
a//b a除以b,向下取整
a%b a对b取余数

逻辑表达式

not a     a的逻辑非
a and b  a和b逻辑与
a or b a和b逻辑或
a is b a和b是同一个对象
a is not b a和b不是同一个对象

控制语句

python里的控制语句和循环语句和C中的非常相似,python是用C实现的。注意语句后的":"不要丢掉。

while 判断语句:
执行语句

python输入输出函数
name = raw_input("please input your name")

for循环可以遍历任何序列的项目,如一个列表或者一个字符串
for iterating_var in sequence:
执行语句

>>> for letter in "hello":
print letter

h
e
l
l
o

在python中,for...else表示这样的意思,for中的语句和普通的没有区别,else中的语句会在循环正常执行完(即for不是通过break跳出而中断的)情况下执行,while...else也是一样
count=0

while count < 5:

    print(count,"is less than 5")

    count = count + 1

else:

    print(count ,"is bigger 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 bigger than 5')

count=0

while count < 5:

    print(count,"is less than 5")

    count = count + 1

    if count == 3:

        break

else:

    print(count ,"is bigger than 5")

输出:
(0, 'is less than 5')

(1, 'is less than 5')

(2, 'is less than 5')

list列表

序列都可以进行的操作包括索引,切片,加,乘,检查成员。序列中的每个元素都分配一个数字,他的位置,或索引,第一个索引是0,第二个索引是1,依次类推。

列表和元组二者均能保存在任意类型的python对象,索引访问元素从开始列表元素用[]包括,元素个数值都可以改变元组元素用()包括,通过切片[][:]得到子集,此操作同于字符串相关操作,切片使用的基本样式[下限:上限:步长]

访问列表中的值

>>> alist = [1,2,3,4,5,6,7,8,9]

>>> alist[0]

1

>>> alist[:4]

[1, 2, 3, 4]

>>> alist[2:8:2] #范围值

[3, 5, 7]

>>> alist[3]=50 #修改值

>>> alist

[1, 2, 3, 50, 5, 6, 7, 8, 9]

>>> del alist[2] #删除值

>>> alist

[1, 2, 50, 5, 6, 7, 8, 9]



TAB键输入提示
>>> alist.append(5)

>>> alist

[1, 2, 50, 5, 6, 7, 8, 9, 5]

>>> alist.append("hello")

>>> alist

[1, 2, 50, 5, 6, 7, 8, 9, 5, 'hello']

列表长度
>>> len(alist)

10

>>> alist + [88,99]

[1, 2, 50, 5, 6, 7, 8, 9, 5, 'hello', 88, 99]

>>> alist * 2

[1, 2, 50, 5, 6, 7, 8, 9, 5, 'hello', 1, 2, 50, 5, 6, 7, 8, 9, 5, 'hello']

>>> 'hello' in alist

True

>>> 100 in alist

False

Python列表函数&方法

python包含以下函数:
1 cmp(list1,list2)
比较两个列表的元素
2 len(list)
列表元素个数
3 max(list)
返回列表元素最大值
4 min(list)
返回列表元素最小值
5 list(seq)
将元组转换为列表

python包含以下方法
1  list.append(obj)
在列表末尾添加新的对象
2 list.count(obj)
统计某个元素在列表中出现的次数
3 list.extend(seq)
在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
4 list.index(obj)
从列表中找出某个第一个匹配的索引位置
5 list.insert(index,obj)
将对象插入列表
6 list.pop(obj=list[-1])
移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
7 list.remove(obj)
移除列表中某个值的第一个匹配项
8 list.reverse()
反向列表中元素
9 list.sort([fun])
对原列表进行排序

元组Tuple

python的元组与列表类似,不同之处在于元组的元素不能修改。也可以进行分片和连接操作,元组使用小括号,列表使用方括号。
>>> aTuple = ('hello',1.2)

>>> aTuple
('hello', 1.2)

>>> aTuple[1]

1.2

元组内置函数
python元组包含了以下内置函数
序号 序号及描述
1 cmp(tuple1,tuple2)
比较两个元组元素
2 len(tuple)
计算元组元素个数
3 max(tuple)
返回元组中元素最大值
4 min(tuple)
返回元组中元素最小值
5 tuple(seq)
将列表转换为元组

多维元组

>>> demotuple=[(1,2),(3,4)]

>>> demotuple[0]

(1, 2)

>>> demotuple[0][0]

1

字典DIctionary 

字典是python中的映射数据类型,由键值(key-value)构成,类似于关联数组或哈希表,key一般以数字和字符串居多,值可以是任意的python的类型对象,如其他容器对象。字典元素用大括号{}

>>> dict={1:"hello",2:"word",3:"!"}

>>> dict

{1: 'hello', 2: 'word', 3: '!'}

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

访问字典里的值
>>> dict[1]

'hello'

>>> dict[2]

'word

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

两个重要的点需要记住:
1不允许同一个键出现两次,创建时如果同一个键被赋值两次,后一个值会被记住。
>>> dict={"name":"xiaozhihui","age":24,"name":"zhangwei"}

>>> dict

{'age': 24, 'name': 'zhangwei'}

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

字典内置函数和方法
python字典包含了以下内置函数
1  cmp(dict1,dict2)
比较两个字典元素
2 len(dict)
计算字典元素个数,即键的总数
3 str(dict)
输出字典可打印的字符串表示
4 type(variable)
返回输入变量的类型,如果变量是字典就返回字典类型

python字典包含了以下内置函数:
1 radiansdict.clear()
删除字典内所有元素
2 radiansdict.copy()
返回一个字典的浅复制
3 radiansdict.fromkeys()
创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
4 radiansdict.get(key,default=Nono)
返回指定键的值,如果不存在字典中返回defalut的值
5 radiansdict.has_key(key)
如果键在字典dict里返回true,否则返回false
6 radiansdict.items()
以列表返回可遍历的(键,值)元组数组
7 radiansdict.keys()
以列表返回一个字典所有的键
8 radiansdict.setdefault(key,defalut=Nono)
和get()类似,但如果键不存在与字典中,将会添加键并将值设为default
9 radiansdict.update(dict2)
把字典dict2的键、值对更新到dict里
10 radiansdict.values()
以列表返回字典中的所有值
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: