Python 入门学习笔记

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 入门学习笔记相关的知识,希望对你有一定的参考价值。

安装和运行

官网下载安装包
https://www.python.org/downloads/mac-osx/
下载完直接安装即可

运行
打开 terminal,输入命令 python,进入 python 环境(类似输入 node 进入 node 环境)

退出 python 环境

exit()

>>> python
Python 2.7.14 (v2.7.14:84471935ed, Sep 16 2017, 12:01:12) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 1 + 2
3
>>> exit()

print 语句

打印多个字符串,用逗号隔开,就可以连成一串输出

print This is Tuesday, I am study Python 

注释

# print This is a comment

raw 字符串

内部字符串不需要转义,类似 html 中 pre 标签的功能

print r\$%^&*(_)(*&^%$/

多行字符串

print ‘‘‘ Line 1
line2
line3 ‘‘‘

 list (类似 js 中数组)

>>> arr = [1, 2, 3, abc, 你好]
>>> arr
[1, 2, 3, abc, 你好]

list 元素的访问和 js 数组类似

arr[3] # abc

倒序访问 list 元素

arr[-1] # 你好

在 list 末尾添加元素

list.append(new item)

在 list 指定位置添加元素

list.insert(3, new item) # 在 index = 3 的位置上添加新元素,后面的元素依次后移一位

list 中删除元素

list.pop(index)
list.pop() # 删除 list 中最后一个元素
list.pop(2) # 删除 list index = 2 的元素

 tuple(元组、数组)

类似 list 的有序列表,但是不可变,相当于常量类型的 list

t = (Apple, Peach, Banana)

tuple 访问元素的操作和 list 一致,但是对列表元素不能执行 append、 insert 和 pop 操作

创建tuple

t = ()

创建包含一个元素的tuple
不能写成 t = (1)  # 1
而应该是 t = (1,) # 添加一个逗号来避免歧义,明确这是一个 tuple

if 语句

age = 20
if age >= 18:
print ur age is, age

代码缩进规则

具有相同缩进的代码被视为代码块,不要混合使用 tab 和空格
if 语句后面跟表达式,并用冒号:表示代码块开始

if-else(else 后面要跟冒号:)

if name == wangxi:
  print hello wangxi
else:
  print hello strange
# hello wangxi 

if-elif-else

if age >= 18:
    print adult
elif age >= 6:
    print teenager
elif age >= 3:
    print kid
else:
    print baby

 for 循环

for item in list:
    print item

 dict

dictionary,字典,类似 js 对象,使用 key-value 键值对来表示元素的对应关系s

d = {
    name: wangxi,
    age: 25
}
# { name: wangxi, age: 25 }

 len(dict)

计算 dict 的长度

len(d) # 2

 访问dict

dict[name] # wangxi
dict.get(name) # wangxi

 判断 key 是否存在

if name in d:
  print d[name] # wangxi

 获取 dict 的 key

for key in d:
    print key
# name
# age

 获取 dict 的 value

for value in d.values():
    print value
# wangxi
# 25

 itervalues() 不会转换 dict,在迭代过程中依次从 dict 中取出 value,而 values() 会将 dict 转换成 包含 value 的 list

for value in d.itervalues():
    print value
# wangxi
# 25

 同时获取 key 和 value

for key, value in d.items():
    print key, :, value
# name: wangxi
# age: 25

 dict 的特点以及和 list 的比较

  1.  查找速度快,但是占用内存大,list 则相反
  2. key 是唯一的,不能重复,list 中的元素是可以重复的
  3. key-value 是没有顺序的,list 则是有顺序的
  4. key 是不可变的(字符串、整数、浮点数等)

set
和 JS es6 中的 set 几乎一样
可以理解为元素唯一的不可重复的数组
如果创建或修改的时候出现重复元素,则会自动过滤

s = set([1, 2, 2, 3, 3, 4]) # set([1, 2, 3, 4])

 特点

1. set 存储的元素是无序的,所以不能用索引来访问 set 元素
使用 in 操作符判断元素是否在 set 中 (es6 中使用 has() 方法)

2 in s # true

2. set 的元素是不可变的

遍历set(for...in...)

for item in s
    print s

更新 set
添加 add()

s.add(wangxi) # set([1, 2, 3, 4, wangxi])

 删除 remove() # es6 中使用 delete

内置函数
abs()
cmp(1, 2)

函数
def functionName(x):
  pass

函数返回多个值

def getUserInfo (name, age):
    return name, age
getUserInfo(wangxi, 25) 
# (wangxi, 25) 返回值是 tuple 类型

 递归函数

def fact(n):
    if n == 1:
        return 1    
    return n * fact(n)

 指定默认参数(和 es6 用法相同)

定义可变参数

def fn(*args):
    print args

fn(1, 2, 2, 3) # 打印的是 args 的 tuple (1, 2, 2, 3)

 对 list 或 tuple 或 字符串进行切片

L = range(1, 100) # 生成 1~100 的list
L[1: 3] # [2, 3]
L[:3] # [1, 2, 3] 相当于 L[0: 3] 开始是 0 可以省略
L[:] # 从头到尾选取元素,相当于复制一个新的 list
L[::3] # 从 0 开始,每三个元素选取一个 [1, 4, 7...]
L[2::3] # 从第三个元素开始,每三个元素选取一个 [3, 6, 9...]
ABCDEFG[1:3] # BC

 迭代循环

for x in xrange(1,10):
    passs

 索引迭代

L = [apple, pear, strawberry, grape]
    for index, name in enumerate(L):
        print index, -, name
# 0 - apple
# 1 - pear
# 2 - strawberry
# 3 - grape
    

 生成列表

生成 [1x2, 3x4, 5x6, 7x8, ..., 99x100]

[x * (x + 1) for x in range(1, 100, 2)]

 条件过滤

计算列表中偶数项的平方

[x * x for x in range(1, 100) if x % 2 == 0]
# [4, 16, 36, 64, ...]

 多层表达式

L = []
for m in ABC:
  for n in 123:
    L.append(m + n)

转换成

[m + n for m in ABC for n in 123]
# [A1, A2, A3, B1, B2, B3, C1, C2, C3]

 

以上是关于Python 入门学习笔记的主要内容,如果未能解决你的问题,请参考以下文章

Unity Shader入门精要学习笔记 - 第5章 开始 Unity Shader 学习之旅

Jsp入门EL表达式_学习笔记

Python学习笔记之Scrapy框架入门

python学习笔记012——pdb调试

Python 3学习笔记

Python 入门学习笔记