Fork me on GitHub

Python基础学习总结

热门
  最近十年十种常用编程语言的变化图

特性

  • 提供了非常完善的基础代码库
  • 还有大量的第三方库
  • 注释
  • 对缩进严格要求
  • 大小写敏感

特点:简单优雅

Python能够做什么

输入输出:input,print

name = input('please enter your name: ')print('hello,', name)

数据类型和 变量

整数、浮点数、字符串、布尔值、空值 变量、常量

  • 空值是Python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值

使用list和tuple

  • Python内置的一种数据类型列表:list,可以随时添加和删除其中的元素

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

用len()函数可以获得list元素的个数

len(classmates)

  • 删除list末尾的元素,用pop()方法
  • list元素也可以是另一个的list(类似是二维数组)

另一种有序列表叫做元组:tuple,tuple和list很类似,但是tuple一旦初始化后不能修改

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

可变?

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

“变化”的tuple

条件判断

循环

使用dict和set

Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值存储,具有极快的查询速度

1
2
3
d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
d['Michael']
95
  • 可以通过in判断key是否存在
  • 通过dict提供的get方法,如果key不存在,可以返回none,或者自己指定的value
1
2
3
 d.get('Thomas')
d.get('Thomas', -1)
-1
  • 删除key,用pop(key)方法
  • 牢记dict的key必须是不可变对象

set

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

1
2
3
 s = set([1, 2, 3])
s
{1, 2, 3}
  • add(key)方法可以添加到set中
  • remove(key)可以删除元素
  • set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集、并集等操作。

讨论不可变对象

上面提到的list是可变对象,对list进行操作,list内部内容是会发生变化的。但是对于不可变对象,比如

1
2
3
4
5
 a = 'abc'
b = a.replace('a', 'A')
b'Abc
a
'abc'

实例

原理

目标页面

代码

定义函数

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

  • 空函数 pass 语句
  • 参数检查
  • 返回多个值
  • 函数执行结束的时候没有return语句时,自动return None

函数参数

默认参数

可变参数

*args是可变参数,args接收的是一个tuple
关键字参数

**kw是关键字参数,kw接收的是一个dict
参数组合

可变参数既可以直接传入:func(1, 2, 3),又可以先组装list或tuple,再通过*args传入:func(*(1, 2, 3));
关键字参数既可以直接传入:func(a=1, b=2),又可以先组装dict,再通过**kw传入:func(**{‘a’: 1, ‘b’: 2})

使用*args和**kw是Python的习惯写法,当然也可以用其他参数名,但最好使用习惯用法

解决递归调用栈溢出的方法是通过尾递归优化,事实上尾递归和循环的效果是一样的,所以,把循环看成是一种特殊的尾递归函数也是可以的。

-------------本文结束感谢您的阅读-------------