美文网首页
python入门

python入门

作者: 123674585508575 | 来源:发表于2018-01-28 21:45 被阅读0次

这几天开始学习python,就将自己学到的东西总计一下,这是我写的第一篇博客,不好之处,还望大家见谅。
其实python包含的知识点并不多,下面我就给一一列举一下。

1.数据类型

整数 浮点数 字符串 布尔值 空值(None)

2.List与Tuple

List与Tuple都是用来存储数据的。但是却有很大的区别。
表示上 : List用[ ]表示,Tuple用()表示
更改性:List拥有append(),insert(),pop()等方法来修改List。Tuple却没有这 些方法,因而Tuple里面的元素是不可修改的。但是如果Tuple里面的元素用List时,那么可通过修改List来达到修改Tuple的目的。
例如:

t = ('a', 'b', ['A', 'B'])
L = t[2]
L[0] = 'X'
L[1] = 'Y'
print t

打印结果为:('a', 'b', ['X', 'Y'])

3.Dict和Set

首先说明Dict和Set与List和Tuple一样,也是用来存储数据的。
Dict:里面存储的是键值对。

d = {
    'Adam': 95,
    'Lisa': 85,
    'Bart': 59
}

Set:set 持有一系列元素,这一点和 list 很像,但是set的元素没有重复,而且是无序的,这点和 dict 的 key很像。
创建set的方法如下:

 s = set(['A', 'B', 'C'])

可以查看 set 的内容:

set(['A', 'C', 'B'])

访问set
由于set存储的是无序集合,所以我们没法通过索引来访问。访问 set中的某个元素实际上就是判断一个元素是否在set中。
例如,存储了班里同学名字的set:

s = set(['Adam', 'Lisa', 'Bart', 'Paul'])
#我们可以用 in 操作符判断:Bart是该班的同吗?
'Bart' in s
True

遍历set

s = set(['Adam', 'Lisa', 'Bart'])
for name in s:
      print name
Lisa
Adam
Bart

更新set
remove()   add()

4.函数

编写函数
定义一个函数要使用 def 语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用 return 语句返回。

def my_abs(x):
      if x >= 0:
             return x
      else:
            return -x

函数返回值
函数可以返回多个值吗?答案是肯定的。
比如在游戏中经常需要从一个点移动到另一个点,给出坐标、位移和角度,就可以计算出新的坐标:

#math包提供了sin()和 cos()函数,我们先用import引用它:
import math
def move(x, y, step, angle):
      nx = x + step * math.cos(angle)
      ny = y - step * math.sin(angle)
      return nx, ny

这样我们就可以同时获得返回值:

x, y = move(100, 100, 60, math.pi / 6)
print x, y
151.961524227 70.0

但其实这只是一种假象,Python函数返回的仍然是单一值:

r = move(100, 100, 60, math.pi / 6)
print r
(151.96152422706632, 70.0)

用print打印返回结果,原来返回值是一个tuple!
但是,在语法上,返回一个tuple可以省略括号,而多个变量可以同时接收一个tuple,按位置赋给对应的值,所以,Python的函数返回多值其实就是返回一个tuple,但写起来更方便。

5.切片

切片分为:List切片和字符串切片。
切片的种类:正序求片和倒序切片。

6.迭代

迭代其实就是遍历。迭代永远是取出元素本身,而非元素的索引。
索引迭代
方法是使用 enumerate() 函数:

L = ['Adam', 'Lisa', 'Bart', 'Paul']
for index, name in enumerate(L):
     print index, '-', name
结果为:
0 - Adam
1 - Lisa
2 - Bart
3 - Paul

迭代dict的value
dict 对象有一个 values() 方法,这个方法把dict转换成一个包含所有value的list,这样,我们迭代的就是 dict的每一个 value:

d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }
print d.values()
# [85, 95, 59]
for v in d.values():
    print v
#85
#95
#59

如果仔细阅读Python的文档,还可以发现,dict除了values()方法外,还有一个 itervalues() 方法,用 itervalues() 方法替代 values() 方法,迭代效果完全一样:

print d.itervalues()
# <dictionary-valueiterator object at 0x106adbb50>
for v in d.itervalues():
     print v
# 85
# 95
# 59

那这两个方法有何不同之处呢?

  1. values() 方法实际上把一个 dict 转换成了包含 value 的list。
  2. 但是 itervalues() 方法不会转换,它会在迭代过程中依次从 dict 中取出 value,所以 itervalues() 方法比 values() 方法节省了生成 list 所需的内存。
  3. 打印 itervalues() 发现它返回一个 <dictionary-valueiterator> 对象,这说明在Python中,for 循环可作用的迭代对象远不止 list,tuple,str,unicode,dict等,任何可迭代对象都可以作用于for循环,而内部如何迭代我们通常并不用关心。
    迭代dict的key和value
    我们了解了如何迭代 dict 的key和value,那么,在一个 for 循环中,能否同时迭代 key和value?答案是肯定的。
    首先,我们看看 dict 对象的 items() 方法返回的值:
>>> d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }
>>> print d.items()
[('Lisa', 85), ('Adam', 95), ('Bart', 59)]

可以看到,items() 方法把dict对象转换成了包含tuple的list,我们对这个list进行迭代,可以同时获得key和value:

for key, value in d.items():
     print key, ':', value 
Lisa : 85
Adam : 95
Bart : 59

和 values() 有一个 itervalues() 类似, items() 也有一个对应的 iteritems(),iteritems() 不把dict转换成list,而是在迭代过程中不断给出 tuple,所以, iteritems() 不占用额外的内存。

7.列表生成式

这个我暂时还不会

相关文章

网友评论

      本文标题:python入门

      本文链接:https://www.haomeiwen.com/subject/sokzaxtx.html