零基础学python—基础

引用模块
  • 形式1:import module-name。import后面跟空格,然后是模块名称
  • 形式2:from module1 import module11。module1是一个大模块,里面还有子模块module11,只想用module11,就这么写
脚本定义
  • 计算机程序要经过编译和链接而成为一种人们不易看清而计算机可解读的格式,然后运行。未经编译就可运行的程序,通常称之为脚本程序(script)
  • 程序,简而言之,就是指令的集合。但是,有的程序需要编译,有的不需要。python编写的程序就不需要,因此它也被称之为脚本程序
Mac终端运行.py文件
  • python 2:OS X 自带 Python 2,所以直接输入

python "python"文件夹的绝对路径/文件名.py

可以通过直接将 .py 文件拖入终端的方式来获取该文件的绝对路径
绝对路径是相对于盘符的路径

  • 使用 Python 3 来运行此文件,需在Mac上安装

1-7 玩转字符串(1)

->>> print 'what's your name?'
what's your name?
此处的斜杠为转义字符。所谓转义,就是不采用符号现在之前的含义,而采用另外一含义了

1-8 玩转字符串(2)

  • 占位符
    在python里面规定了一些占位符,通过这些占位符来说明那个位置应该填写什么类型的东西,这里暂且了解两个占位符:%d——表示那个位置是整数,%s——表示那个位置应该是字符串
>>> a=1
>>> type(a)
<type 'int'>    #a是整数
>>> b="1"
>>> type(b)
<type 'str'>    #b是字符串
>>> print "one is %d"%a
one is 1
>>> print "one is %d"%b     #报错了,这个占位符的位置应该放整数,不应该放字符串。
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  TypeError: %d format: a number is required, not str

1-9 玩转字符串(3)

- 去掉字符串的空格
1 . S.strip() 去掉字符串的左右空格
2 . S.lstrip() 去掉字符串的左边空格
3 . S.rstrip() 去掉字符串的右边空格

1-11 从if语句开始的征程

  • raw_input:接受用户输入,返回字符串形式

/#! /usr/bin/env python

这句话以#开头,表示本来不在程序中运行。这句话的用途是告诉机器寻找到该设备上的python解释器,操作系统使用它找到的解释器来运行文件中的程序代码。有的程序里写的是/usr/bin python,表示python解释器在/usr/bin里面。但是,如果写成/usr/bin/env,则表示要通过系统搜索路径寻找python解释器。不同系统,可能解释器的位置不同,所以这种方式能够让代码更将拥有可移植性。对了,以上是对Unix系列操作系统而言

1-12 一个免费的实验室

  • 交互模式
    当给一个变量a赋值于一个字符串之后,输入变量名称,就能够打印出字符串,和print a具有同样的效果。这是交互模式下的一个特点,如果在文件模式中,则不能,只有通过print才能打印变量内容
  • 报错

->>>表示后面可以输入指令,...表示当前指令没有结束。要结束并执行,需要敲击两次回车键。

1-14 有容乃大的list(2)

  • append/extend的区别
    append是整建制地追加,extend是个体化扩编
  • 元素在list位置

list.index(x)
Return the index in the list of the first item whose value is x. It is an error if there is no such item.

1-15 有容乃大的list(4)

  • 排序
    list.sort(cmp=None, key=None, reverse=False)
    sorted(iterable[, cmp[, key[, reverse]]])

1-16 list和str比较

  • 相同点
    1 . 都属于序列类型的数据
    所谓序列类型的数据,就是说它的每一个元素都可以通过指定一个编号,行话叫做“偏移量”的方式得到,而要想一次得到多个元素,可以使用切片。偏移量从0开始,总元素数减1结束
  • 区别
    1 . list和str的最大区别是:list是可以改变的,str不可变
    2 . 在str中,里面的每个元素只能是字符,在list中,元素可以是任何类型的数据
  • list和str转化
    1 .str.split():
    将str转换成list
    2 . "[sep]".join(list)
    将list转变成字符串

1-18 画圈还不简单吗?

  • print每打印一个之后,就自动换行。如果要让打印的在一行,可以在打印的后面加一个逗号(英文)

1-19 再深点,更懂list

  • list解析
  • enumerate
    同时得到元素编号和元素

1-20 字典,你还记得吗?

  • 了解str的属性、方法

help(str)
得到所有内容

> dir(str)
也能得到相同结果,不过更简单

- 概述
>dict是可变的
dict可以存储任意数量的Python对象
dict可以存储任何python数据类型
dict以:key:value,即“键:值”对的形式存储数据,每个键是唯一的。
dict也被称为关联数组或哈希表。

- 知识
1 . 关联数组
>在计算机科学中,关联数组(英语:Associative Array),又称映射(Map)、字典(Dictionary)是一个抽象的数据结构,它包含着类似于(键,值)的有序对。一个关联数组中的有序对可以重复(如C++中的multimap)也可以不重复(如C++中的map)

2 . 哈希表
>散列表(Hash table,也叫哈希表),是根据关键字(Key value)而直接访问在内存存储位置的数据结构。也就是说,它通过把键值通过一个函数的计算,映射到表中一个位置来访问记录,这加快了查找速度。这个映射函数称做散列函数,存放记录的数组称做散列表

### 1-21 字典的操作方法
- 获取键、值
> dict.keys   
dict.values
dict.items   #获取字典键值对,list形式,里面的键值对为元组形式

### 1-22 有点简约的元组
- list()和tuple()能够实现两者的转化

### 1-23 一二三,集合了
> 交互模式下用dir()或者help()
google(不推荐Xdu,原因自己体会啦)

1 .  ***是否为序列类型:即该数据的元素是否能够索引.其中序列类型的包括str/list/tuple***
2 . ***是否可以原处修改:即该数据的元素是否能够原处修改(特别提醒看官,这里说的是原处修改问题,有的资料里面说str不能修改,也是指原处修改问题.为了避免误解,特别强调了原处).能够原处修改的是list/dict(特别说明,dict的键必须是不可修改的,dict的值可原处修改)***
- 创建set
tuple算是list和str的杂合;
set则可以堪称是list和dict的杂合
- {}这个东西,在dict和set中都用

### 1-25 Python的数据类型总结
- print obj.__doc__
查看某个数据类型的含义

### 1-26 深入变量和引用对象
- is和==的效果
1 . == 指内容一样
2 . is 是比较两个引用对象在内存中的地址是不是一样

### 1-27 赋值,简单也不简单
- 变量名称格式
(下划线或者字母)+(任意数目的字母,数字或下划线)
- 注意
1 . 区分大小写
2 . 禁止使用保留字
3 . 遵循通常习惯
  - 以单一下划线开头的变量名(_X)不会被from module import *语句导入的。
  - 前后有下划线的变量名(*X*)是系统定义的变量名,对解释器有特殊意义。
  - 以两个下划线开头,但结尾没有两个下划线的变量名(__X)是类本地(压缩)变量。
  - 通过交互模式运行时,只有单个下划线变量(_)会保存最后的表达式结果

### 1-28 坑爹的字符编码
- python中如何避免中文是乱码

1 . 提倡使用utf-8编码方案,因为它跨平台不错
> # -*- coding: utf-8 -*-

2 . 遇到字符(节)串,立刻转化为unicode,不要用str(),直接使用unicode()

> unicode_str = unicode('中文', encoding='utf-8')
print unicode_str.encode('utf-8')    #print不能去除,否则又是乱码形式

3 . 如果对文件操作,打开文件的时候,最好用codecs.open,替代open
> import codecs
codecs.open('filename', encoding='utf8')

### 1-30 不要红头文件(1)
- 创建文件

| 模式 | 描述 | 
|:-------------:| -----:|
| r | 以读方式打开文件,可读取文件信息 | 
| w| 以写方式打开文件,可向文件写入信息。如文件存在,则清空该文件,再写入新内容 | 
| a | 以追加模式打开文件(即一打开文件,文件指针自动移到文件末尾),如果文件不存在则创建 | 
| r+ | 以读写方式打开文件,可对文件进行读和写操作 | 
| w+ | 消除文件内容,然后以读写方式打开文件 | 
| a+| 以读写方式打开文件,并把文件指针移到文件尾 | 

- with
在对文件进行写入操作之后,一定要牢记一个事情:file.close()
或者使用with方法,实现安全的关闭文件

```
with open("filename","a") as f
  f.write()
```

### 1-30 不要红头文件(2)
- 文件的属性
所谓属性,就是能够通过一个文件对象得到的东西。
- 文件的内置函数
> dir(file)

1 . file.read()
将文件中的内容全部读取过来。返回一个字符串,而且是将文件中的内容全部读到内存中。故不要去读大个的文件
2 . file.readline()
一行一行地读取,每次返回一行,然后指针向下移动
3 . file.readlines()
将文件内容一次性读出来,存放在内存,返回的是list
4 . 读取大文件
```
for i in file:
print i
```
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,294评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,493评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,790评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,595评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,718评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,906评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,053评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,797评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,250评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,570评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,711评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,388评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,018评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,796评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,023评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,461评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,595评论 2 350

推荐阅读更多精彩内容

  • http://python.jobbole.com/85231/ 关于专业技能写完项目接着写写一名3年工作经验的J...
    燕京博士阅读 7,557评论 1 118
  • Python 是一种相当高级的语言,通过 Python 解释器把符合语法的程序代码转换成 CPU 能够执行的机器码...
    Python程序媛阅读 1,897评论 0 3
  • 一、python 变量和数据类型 1.整数 Python可以处理任意大小的整数,当然包括负整数,在Python程序...
    绩重KF阅读 1,662评论 0 1
  • 最近在慕课网学习廖雪峰老师的Python进阶课程,做笔记总结一下重点。 基本变量及其类型 变量 在Python中,...
    victorsungo阅读 1,671评论 0 5
  • 个人笔记,方便自己查阅使用 Py.LangSpec.Contents Refs Built-in Closure ...
    freenik阅读 67,682评论 0 5