美文网首页
《编程小白python入门》学习笔记

《编程小白python入门》学习笔记

作者: 100gle | 来源:发表于2018-02-18 11:13 被阅读29次

全文结构

python 入门.png

一、基础

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 列表的特征

  1. 列表是python中最常见的数据结构形式,和R一样,Python的list一样可以容纳任何对象
  2. list有一下显著特征:
    • 列表中的每个元素都是可变的(即修改,元组不能)
    • 列表中的元素都是有序的,一个元素对应一个位置(即对号入座,便于索引)
    • 列表可以容纳Python中的任何对象(除了其他数据结构类型之外,还可以包含各种类型的数据)

5.1.2 列表的增删改查

  1. 在列表中插入数据可以使用insert()函数和索引插入

    '''
    函数插入
    '''
    
    fruit = ['pineapple', 'pear']
    fruit.insert(1, 'grape')
    print(fruit)
    
    '''
    索引插入
    '''
    
    fruit[0:0] = ['orange']
    print(fruit)
    
    • 使用该函数时必须要指定插入新的元素的位置,插入元素的实际位置位于指定位置元素之前(即在索引位置为「1」的位置上插入“grape”,由于在fruit列表中,fruit[1]是“pear”,因此就插入在了“pear”前面)
    • 如果指定的位置在列表中不存在,即超出指定列表长度,那么这个元素被放在列表的最后位置
  2. 使用remove()函数和del关键字删除

    ’‘’
    使用remove()
    ‘’‘
    fruit = ['pineapple', 'pear', 'grape']
    fruit.remove('grape')
    print(fruit)
    
    '''
    使用del
    '''
    del fruit[0:2]
    print(fruit)
    
    • 直接在remove()函数中指定元素名即可删除
    • 列表的索引与字符串的切片相似,也分正反索引两种方式
  3. 通过索引来修改值
    使用索引来替换值即可做到修改元素的效果

  4. 如果想要查询某列表中的元素,可以直接在索引中指定元素名

5.2 字典

5.2.1 字典的特征

字典的特征如下:
* 字典中的数据必须以键值对形式出现
* 键不可重复(类似于SQL类数据库的primary key),值可以重复
* 键不可变(无法修改),而值可变可修改,可为任何对象

5.2.1 字典的增删改查

  1. 和列表不同的是,字典的增添是通过索引「键」然后指定「值」来添加元素
nasdsq_code = {'bidu':'baidu', 'sinnaa':'sina'}
nasdsq_code['yoku'] = 'youku'
print(nasdsq_code)
  1. 也可以使用添加元素的方法update()函数来进行元素添加:
nasdaq_code.update({'fb':facebook,'tsla':Tesla})
  1. 删除字典中的元素使用del方法即可
  2. 字典在引用和列表引用一样,使用方括号;但需要注意的是字典索引时是指定的「键」
  3. 字典不能切片

5.3 元组

可以理解成一个稳定版的列表,需要注意的是,元组不可被修改;元组可以被索引

5.4 集合

集合类似于数学上集合的概念,因此也具有一些特征:

  • 集合中的元素是无序的、不重复的任一对象
  • 可以通过集合去判断数据的从属关系
  • 还可以通过集合把数据结构中的重复元素减掉
  • 集合不能被切片和索引
  • 除了做集合运算之外,集合元素可增删
    • 增加元素使用add()函数
    • 删除元素使用discard()函数

5.5 数据结构技巧

  1. 使用sorted()函数可以对列表进行排序:
    • 但不会改变列表本身,如果需要提取排序结果需要另外赋值;
    • 并且reverse=选项可以用逻辑值来调节降序升序;
    • 默认为升序
  2. 整理列表时需要两个列表,使用zip()函数即可:
for a,b in zip(num,str):
    print(b, 'is', a)
  • 根据a、b与num、str的位置一一对应
  1. 推导式与列表的解析式一致,有两种写法可以将元素装进列表:
'''
普通写法
'''

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会自动跳出之前定义的类的属性,这个过程为类属性的引用

  • 类的属性被所有类的实例共享

相关文章

网友评论

      本文标题:《编程小白python入门》学习笔记

      本文链接:https://www.haomeiwen.com/subject/zgzvtftx.html