全文结构

一、基础
1.1 变量
- python的变量赋值符号使用的是等号「=」
- python对大小写敏感,需要及时留意
1.2 print()
-
print()
函数用于展示打印的结果
二、数据类型
2.1 字符串
2.1.1 字符串基础
- 被''或""包围的就是字符串
- """text"""三个引号用于长段文字或说明,只要没有以三个引号结束,可以一直写下文字
- 在编写的脚本中如果包含中文,需要在脚本前面提前添加UTF-8的编码格式:
#-*- coding:utf-8 -*
- 字符串类型只能和字符串类型相连(相加);若需要和其他类型数据相加,则需要提前进行类型转换
- 使用
len(char)
函数可以计算字符串数
2.1.2 字符串切片和索引
字符串在python中是对象,可以通过string[x]来进行切片、索引
- 实际上对字符串切片和索引就是根据
len(string)
计算字符串数后来索引每一个字符 - python的索引数字是从「0」开始,而R是从「1」开始
三、基本函数
python自带了许多内建函数,可以访问Python内建函数来查阅
3.1 创建函数
3.1.1 函数基本格式
创建函数的常用格式为:
def function_name(arg1, arg2):
options
...
return result
- def和return为关键字,Python依靠关键字来理解操作含义
- 闭合括号后面的冒号「:」必不可少,而且要注意使用的是英文毛好
- options部分需要用缩进来表示代码块,缺少了缩进可能会导致错误
3.1.2 参数传递
向函数传递参数就实现了对函数的调用(call),只需把参数(arguments)放入函数的括号内即可;传递参数的方式有两种:
1. 位置参数
2. 关键字参数
- 在3.1.1节中,在定义好函数后,直接在括号内填入参数即为位置参数指定;如果在括号内加上「arg1 = #」,则为关键字参数指定
- 如果不使用关键字指定,则传入的值会根据参数的位置依次填入
四、控制与循环
4.1 基本控制结构
基本的条件控制结构为如下形式:
if condition:
options
else:
options
- 总而言之,if-else语句的逻辑就是:如果条件成立,就做……;否则,就做……
- 每个条件关键字必须要有「:」;并且options必须缩进,否则会报错
- condition指成立的条件,即返回值为True的布尔表达式(注意:R中布尔值为TRUE或FALSE;而python则是首字母大写,其余为小写)
如果是多条件,则需要在if和else的结构中间加入elif
结构
if condition:
options
elif condition:
options
else:
options
4.2 循环(Loop)
4.2.1 for循环
基本句式
for item in iterable:
options
- 总而言之,for循环即在…中的每一个元素,做…事情
- item表示元素,可以自己指定,但是不能和关键字重名;iterable表示迭代集合
- 和控制条件一样,需要注意冒号和缩进
嵌套循环
嵌套循环就是在for-loop的循环条件中再加入for-loop
- 「{}」符号搭配format函数使用可以实现自动填充的功能:
for i in range(1, 10):
for j in range(1, 10):
print('{} * {} = {}'.format(i,j,i*j))
- 在这里通过format函数将i、j、i*j分别按顺序传入花括号中
4.2.2 while循环
基本格式
while condition:
options
-
for-loop和while-loop的比较:
- 共同点:都能循环做一件重复的事情
- 不同点:for-loop可在迭代序列被穷尽时停止,而while-loop则是在条件不成立的时候停止
-
总而言之,while循环即只要…条件成立,就一直做…
-
在while后的表达式成立时,后面的操作会一直进行下去,造成死循环;因此需要手动加入
break
来制造循环停止的条件
count = 0
while True:
print('Repeat this line !')
count = count + 1
if count == 5:
break
4.2.3 循环小练习
1.设计函数:在桌面上创建10个文本,以数字给他们命名;并且在每个文本中写入‘ ’空格值
'''
for-loop version
'''
def text_creation():
path = '/Users/linxiaoyue/Desktop'
for name in range(1,11):
with open(path + str(name)+'.txt','w') as text:
text.write(' ')
text.close()
print('Done!')
text_creation()
'''
while-loop version
'''
def text_creation():
path = '/Users/linxiaoyue/文稿'
name = 0
while name < 11:
with open(path + str(name)+'.txt','w') as text:
text.write(str(name))
text.close()
print('Done!')
name = name +1
if name == 10:
break
text_creation()
五、数据结构
Python里有四种数据结构:
* 列表(list):list = [v1, v2, v3, ...]
* 字典(dictory):dict = {key1:value1, key2:value2, ...}
* 元组(tuple):tuple = (v1, v2, v3, ...)
* 集合(set):set = {v1, v2, v3, ...}
总结
- 列表使用方括号、字典和集合使用花括号、元组使用圆括号
- 字典中的元素是以「key:value」的「键-值」对形式存在
5.1 列表
5.1.1 列表的特征
- 列表是python中最常见的数据结构形式,和R一样,Python的list一样可以容纳任何对象
- list有一下显著特征:
- 列表中的每个元素都是可变的(即修改,元组不能)
- 列表中的元素都是有序的,一个元素对应一个位置(即对号入座,便于索引)
- 列表可以容纳Python中的任何对象(除了其他数据结构类型之外,还可以包含各种类型的数据)
5.1.2 列表的增删改查
-
在列表中插入数据可以使用
insert()
函数和索引插入''' 函数插入 ''' fruit = ['pineapple', 'pear'] fruit.insert(1, 'grape') print(fruit) ''' 索引插入 ''' fruit[0:0] = ['orange'] print(fruit)
- 使用该函数时必须要指定插入新的元素的位置,插入元素的实际位置位于指定位置元素之前(即在索引位置为「1」的位置上插入“grape”,由于在fruit列表中,fruit[1]是“pear”,因此就插入在了“pear”前面)
- 如果指定的位置在列表中不存在,即超出指定列表长度,那么这个元素被放在列表的最后位置
-
使用
remove()
函数和del
关键字删除’‘’ 使用remove() ‘’‘ fruit = ['pineapple', 'pear', 'grape'] fruit.remove('grape') print(fruit) ''' 使用del ''' del fruit[0:2] print(fruit)
- 直接在
remove()
函数中指定元素名即可删除 - 列表的索引与字符串的切片相似,也分正反索引两种方式
- 直接在
-
通过索引来修改值
使用索引来替换值即可做到修改元素的效果 -
如果想要查询某列表中的元素,可以直接在索引中指定元素名
5.2 字典
5.2.1 字典的特征
字典的特征如下:
* 字典中的数据必须以键值对形式出现
* 键不可重复(类似于SQL类数据库的primary key),值可以重复
* 键不可变(无法修改),而值可变可修改,可为任何对象
5.2.1 字典的增删改查
- 和列表不同的是,字典的增添是通过索引「键」然后指定「值」来添加元素
nasdsq_code = {'bidu':'baidu', 'sinnaa':'sina'}
nasdsq_code['yoku'] = 'youku'
print(nasdsq_code)
- 也可以使用添加元素的方法
update()
函数来进行元素添加:
nasdaq_code.update({'fb':facebook,'tsla':Tesla})
- 删除字典中的元素使用
del
方法即可 - 字典在引用和列表引用一样,使用方括号;但需要注意的是字典索引时是指定的「键」
- 字典不能切片
5.3 元组
可以理解成一个稳定版的列表,需要注意的是,元组不可被修改;元组可以被索引
5.4 集合
集合类似于数学上集合的概念,因此也具有一些特征:
- 集合中的元素是无序的、不重复的任一对象
- 可以通过集合去判断数据的从属关系
- 还可以通过集合把数据结构中的重复元素减掉
- 集合不能被切片和索引
- 除了做集合运算之外,集合元素可增删
- 增加元素使用
add()
函数 - 删除元素使用
discard()
函数
- 增加元素使用
5.5 数据结构技巧
- 使用
sorted()
函数可以对列表进行排序:- 但不会改变列表本身,如果需要提取排序结果需要另外赋值;
- 并且
reverse=
选项可以用逻辑值来调节降序升序; - 默认为升序
- 整理列表时需要两个列表,使用
zip()
函数即可:
for a,b in zip(num,str):
print(b, 'is', a)
- 根据a、b与num、str的位置一一对应
- 推导式与列表的解析式一致,有两种写法可以将元素装进列表:
'''
普通写法
'''
a = []
for i in range(1,11):
a.append(i)
'''
解析式写法
'''
b = [i for i in range(1,11)]
- 列表解析式在填装大量元素时效率远胜于普通写法
- 一般列表解析式语句为:
list = [item for item in itreable if condition]
- 第一个item后为for循环语句,并且还还可以加入if语句
- 字典的推导放方式不同,需要满足「键-值」条件:
##此时需要用到zip函数
dict = {key : value for key, value in zip(iterable1, iretable2)}
六、类
6.1 类的定义
是一系列具有共同特征和行为事物的抽象概念的总和
类的python定义
class CocaCola:
formula = ['caffeine', 'sugar', 'water', 'soda']
- 使用class关键字来定义类
- 缩进后用formula来装载类的变量,专业术语为类的属性
6.2 类的实例化
将类进行赋值操作即为类的实例化,被实例化后的对象称之为实例
6.2.1 实例属性
创建类并对类进行实例化后,可以通过使用object.local_logo=
来创建实例属性
6.3 类属性引用
类后面输入「.」时IDE会自动跳出之前定义的类的属性,这个过程为类属性的引用
- 类的属性被所有类的实例共享
网友评论