安装和运行

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

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

退出 python 环境

exit()

>>> python
Python 2.7. (v2.7.14:84471935ed, Sep , ::)
[GCC 4.2. (Apple Inc. build ) (dot )] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> + >>> 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 = [, , , 'abc', '你好']
>>> arr
[, , , 'abc', '你好']

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

arr[] # 'abc'

倒序访问 list 元素

arr[-] # '你好'

在 list 末尾添加元素

list.append('new item')

在 list 指定位置添加元素

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

list 中删除元素

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

tuple(元组、数组)

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

t = ('Apple', 'Peach', 'Banana')

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

创建tuple

t = ()

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

if 语句

age =
if age >= :
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 >= :
print 'adult'
elif age >= :
print 'teenager'
elif age >= :
print 'kid'
else:
print 'baby'

for 循环

for item in list:
print item

dict

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

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

len(dict)

计算 dict 的长度

len(d) # 

访问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'
#

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

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

同时获取 key 和 value

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

dict 的特点以及和 list 的比较

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

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

s = set([, , , , , ]) # set([, , , ])

特点

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

 in s # true

2. set 的元素是不可变的

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

for item in s
print s

更新 set
添加 add()

s.add('wangxi') # set([, , , , 'wangxi'])

删除 remove() # es6 中使用 delete

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

函数
def functionName(x):
  pass

函数返回多个值

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

递归函数

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

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

定义可变参数

def fn(*args):
print args fn(, , , ) # 打印的是 args 的 tuple (, , , )

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

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

迭代循环

for x in xrange(,):
passs

索引迭代

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

生成列表

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

[x * (x + ) for x in range(, , )]

条件过滤

计算列表中偶数项的平方

[x * x for x in range(, ) if x %  == ]
# [, , , , ...]

多层表达式

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

转换成

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

Python 入门学习笔记的更多相关文章

  1. Python入门学习笔记4:他人的博客及他人的学习思路

    看其他人的学习笔记,可以保证自己不走弯路.并且一举两得,即学知识又学方法! 廖雪峰:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958 ...

  2. Python入门学习笔记

    了解 一下Python中的基本语法,发现挺不适应的,例如变量经常想去指定类型或者if加个括号之类的.这是在MOOC中学习到的知识中一点简单的笔记. Python的变量和数据类型: 1.Python这种 ...

  3. python入门学习笔记(三)

    10.函数 求绝对值的函数 abs(x) 也可以在交互式命令行通过 help(abs) 查看abs函数的帮助信息.调用 abs 函数:>>> abs(100)100>>& ...

  4. Python入门 学习笔记 (二)

      今天学习了一些简单的语法规则,话不多说,开始了:      二.数据类型                常用数据类型中的整形和浮点型就不多说了.                1.字符串     ...

  5. python入门 -- 学习笔记1

    学习资料:笨方法学Python 准备: 安装环境----请自行网络搜索(Windows安装很简单,和其他安装程序一样) 找一个自己习惯的编辑器(比如:sublime text 3) 创建一个专门的目录 ...

  6. Python入门 学习笔记 (一)

    原文地址:http://www.cnblogs.com/lujianwenance/p/5939786.html 说到学习一门语言第一步就是先选定使用的工具(环境).因为本人是个小白,所以征求了一下同 ...

  7. python入门学习笔记(二)

    6.6替换元素 7.tuple类型 7.1创建tuple 7.2创建单元素tuple    7.3"可变"的tuple 8.条件判断和循环 8.1,if语句   8.2,if... ...

  8. python入门学习笔记(一)

    写在开头:         A:python的交互式环境                                                                         ...

  9. python入门 -- 学习笔记4

    习题38:列表的操作 当你看到像 mystuff.append('hello') 这样的代码时,你事实上已经在 Python 内部激发了一个连锁反应.以下是它的工作原理: 1. Python 看到你用 ...

  10. python入门 -- 学习笔记3

    习题21:函数可以返回东西 过程解析: 1.定义函数:如def add(形参)函数 2.调用函数: add(实参)    别忘记加() 3.在函数调用的时候将实参的值传给形参,代入到函数中进行计算,r ...

随机推荐

  1. intellij idea之git执行打标签(tag)和删除标签

    intellij idea 版本为2017.2.6 进入Version Control-->log 1.在之前版本中,右键,新建标签 2.输入标签名称,建议输入版本号的方式 3.push标签 由 ...

  2. 第四模块:网络编程进阶&数据库开发 考核实战

     1.什么是进程?什么是线程? 什么是协程? 进程:正在进行的一个过程或者说一个任务.而负责执行任务则是cpu. 线程:在传统操作系统中,每个进程有一个地址空间,而且默认就有一个控制线程 协程是一种用 ...

  3. 安装和配置Sentry(收录)

    安装和配置Sentry 本文主要记录安装和配置Sentry的过程,关于Sentry的介绍,请参考 Apache Sentry架构介绍 . 1. 环境说明 系统环境: 操作系统:CentOs 6.6 H ...

  4. 0301001_Lesson1&2

    Lesson 1 Excuse me! 对不起! Listen to the tape then answer this question.Whose handbag is it?听录音,然后回答问题 ...

  5. python 快速搭建文件服务器

    以http方式共享当前文件夹的文件 可实现跨平台文件传输 只需要一句话搞定 #python -m SimpleHTTPServer 8001 浏览器中输入 http://ip:8001  显示所有文件 ...

  6. 使用TFS需要注意的地方

    1. 用管理员添加了本地映射,然后用其他用户就添加不了映射,一定要先用管理员账户去把映射 删除掉: 2. 在正式使用TFS时,一定需要在VS工具的设置里面,设置一下,签出时自动获取最新的代码.(默认是 ...

  7. 「日常训练」「小专题·USACO」 Barn Repair(1-4)

    题意 之后补. 分析 这题同样也很精巧.我们不妨思考一下,如果只允许用一块木板,那么要购买多少距离?是整个的距离吗?不是,是从第一个到最后一个(哈哈哈哈哈哈哈).但是,不包括第一个的"左边& ...

  8. Nginx 配置 HTTPS自签名证书

    工具: OpenSSL ssl的开源实现,几乎实现了市面上所有的加密 libcrypto: 通用加密库, 任何软件要实现加密功能 链接调用这个库 libssl: TLS/SSL 加密库 openssl ...

  9. Xcode 自动打包之旅【本文摘自智车芯官网】

    由于公司项目很多,作为iOS端的开发工程师,在打包和上传App Store过程中超级费时,而且往往会有频繁更改需求重新打包.上传的情况.这些过程让我不胜其烦.之前有听说过自动打包,一直没有时间尝试,此 ...

  10. Java面试题(上)

    2013年年底的时候,我看到了网上流传的一个叫做<Java面试题大全>的东西,认真的阅读了以后发现里面的很多题目是重复且没有价值的题目,还有不少的参考答案也是错误的,于是我花了半个月时间对 ...