python 吃豆人_PythonNote

form: https://www.liaoxuefeng.com/

2017-12-22 16:08

基于Python 3版本

python 链接 : https://www.python.org/ftp/python/3.6.3/python-3.6.3-amd64.exe

勾上Add Python 3.6 to PATH,然后点“Install Now”即可完成安装。

print()会依次打印每个字符串,遇到逗号“,”会输出一个空格

4空格缩进

如果字符串内部既包含'又包含"可以用转义字符\来标识 :'I\'m \"OK\"!'

布尔值可以用and、or和not运算

C#null = python None

python是变量本身类型不固定语言:动态语言

/除法计算结果是浮点数,即使是两个整数恰好整除,结果也是浮点数:

还有一种除法是//,称为地板除,两个整数的除法仍然是整数

ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符

'Hello, {0}, 成绩提升了 {1:.1f}%'.format('小明', 17.125)

'Hello, 小明, 成绩提升了 17.1%'

# list 和List一样

list是一种有序的集合,可以随时添加和删除其中的元素。

listTemp = [1,2,'a','b']

索引访问

获取长度 len(listtemp)

如果要取最后一个元素,除了计算索引位置外,还可以用-1做索引,直接获取最后一个元素listtemp[-1],以此类推,可以获取倒数第2个、倒数第3个

list是一个可变的有序表,所以,可以往list中追加元素到末尾:

listtemp.append('c')

插入: listtemp.insert(1,'d')

删除末尾: listtemp.pop() , 添加参数可以删除指定索引元素

嵌套list/多维list:s = ['python', 'java', ['asp', 'php'], 'scheme'] :len(s) 4

[][]调用

# tuple 类似静态初始化数组, 但是元素不可变

另一种有序列表叫元组:tuple。tuple和list非常类似,但是tuple一旦初始化就不能修改

listTemp = (1,2,'a','b')

这个tuple不能变了,它也没有append(),insert()这样的方法。其他获取元素的方法和list是一样的,你可以正常地使用listTemp[0],listTemp[-1],但不能赋值成另外的元素。

不可变的tuple有什么意义?因为tuple不可变,所以代码更安全。如果可能,能用tuple代替list就尽量用tuple。

当你定义一个tuple时,在定义的时候,tuple的元素就必须被确定下来

如果要定义一个空的tuple,可以写成():

>>> t = ()

>>> t

()

但是,要定义一个只有1个元素的tuple,如果你这么定义:

>>> t = (1)

>>> t

1

定义的不是tuple,是1这个数!这是因为括号()既可以表示tuple,又可以表示数学公式中的小括号,这就产生了歧义,因此,Python规定,这种情况下,按小括号进行计算,计算结果自然是1。

所以,只有1个元素的tuple定义时必须加一个逗号,,来消除歧义:

>>> t = (1,)

>>> t

(1,)

Python在显示只有1个元素的tuple时,也会加一个逗号,,以免你误解成数学计算意义上的括号。

如果tuple中包含list 那么list是可变的

# 判断

if elif else 后边都要跟":" 注意缩进

# 循环

Python的循环有两种,一种是for...in循环,依次把list或tuple中的每个元素迭代出来

names = ['Michael', 'Bob', 'Tracy']

for name in names:

print(name)

range(x): 可以生成0-(x-1)的数

while 方式 灵活一些

sum = 0

n = 99

while n > 0:

sum = sum + n

n = n - 2

print(sum)

break,continue

for while后边都要跟":" 注意缩进

# dict 字典 键值对

>>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}

>>> d['Michael']

95

把数据放入dict的方法,除了初始化时指定外,还可以通过key放入:

>>> d['Adam'] = 67

>>> d['Adam']

67

要避免key不存在的错误,有两种办法,一是通过in判断key是否存在:

>>> 'Thomas' in d

False

二是通过dict提供的get()方法,如果key不存在,可以返回None,或者自己指定的value:

>>> d.get('Thomas')

>>> d.get('Thomas', -1)

-1

注意:返回None的时候Python的交互环境不显示结果。

要删除一个key,用pop(key)方法,对应的value也会从dict中删除:

>>> d.pop('Bob')

75

>>> d

{'Michael': 95, 'Tracy': 85}

和list比较,dict有以下几个特点:

查找和插入的速度极快,不会随着key的增加而变慢;

需要占用大量的内存,内存浪费多。

而list相反:

查找和插入的时间随着元素的增加而增加;

占用空间小,浪费内存很少。

所以,dict是用空间来换取时间的一种方法。

# set

set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。

要创建一个set,需要提供一个list作为输入集合:

>>> s = set([1, 2, 3])

>>> s

{1, 2, 3}

注意,传入的参数[1, 2, 3]是一个list,而显示的{1, 2, 3}只是告诉你这个set内部有1,2,3这3个元素,显示的顺序也不表示set是有序的。。

重复元素在set中自动被过滤:

>>> s = set([1, 1, 2, 2, 3, 3])

>>> s

{1, 2, 3}

通过add(key)方法可以添加元素到set中,可以重复添加,但不会有效果:

>>> s.add(4)

>>> s

{1, 2, 3, 4}

>>> s.add(4)

>>> s

{1, 2, 3, 4}

通过remove(key)方法可以删除元素:

>>> s.remove(4)

>>> s

{1, 2, 3}

set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集、并集等操作:

>>> s1 = set([1, 2, 3])

>>> s2 = set([2, 3, 4])

>>> s1 & s2

{2, 3}

>>> s1 | s2

{1, 2, 3, 4}

set和dict的唯一区别仅在于没有存储对应的value,但是,set的原理和dict一样,所以,同样不可以放入可变对象,因为无法判断两个可变对象是否相等,也就无法保证set内部“不会有重复元素”。

python官方文档

http://docs.python.org/3/library/functions.html#abs

# 函数

可以把函数名赋给一个变量,相当于给这个函数起了一个“别名”:

>>> a = abs # 变量a指向abs函数

>>> a(-1) # 所以也可以通过a调用abs函数

1

使用def 定义函数 后边要加":"

如果想定义一个什么事也不做的空函数,可以用pass语句:

如果你已经把my_abs()的函数定义保存为abstest.py文件了,那么,可以在该文件的当前目录下启动Python解释器,用from abstest import my_abs来导入my_abs()函数,注意abstest是文件名(不含.py扩展名):

pass

pass语句什么都不做,那有什么用?实际上pass可以用来作为占位符,比如现在还没想好怎么写函数的代码,就可以先放一个pass,让代码能运行起来。

函数返回多个值

```

import math

def move(x, y, step, angle=0):

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.96152422706632 70.0

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

>>> r = move(100, 100, 60, math.pi / 6)

>>> print(r)

(151.96152422706632, 70.0)

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值