A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

1015174872

初级黑马

  • 黑马币:

  • 帖子:

  • 精华:

© 1015174872 初级黑马   /  2018-9-3 17:31  /  948 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文



下面记录一些学习笔记以及学习中遇到的一些坑。
Python数据类型
数字(Number):其中又分为int(整数)、float(浮点数)、bool(布尔)、complex(复数)。
字符串(String):需要用''或者""包裹起来。如果需要保留内部的'或”,需要使用\进行转义。
列表(List):列表的格式是写在方括号[]之间、用逗号分隔开元素。可以在列表名后加[数字]来索引目标位置的值。索引是从0开始计数。
元组(Tuple):元组的格式是写在括号()之间、用逗号隔开元素。元组中的元素及顺序不可修改。但和列表一样可以后缀[数字]进行索引。
集合(Set):集合的格式是写在{}之间,是一个无序不重复序列。可以使用大括号{}或者set()函数创建集合。
字典(Dictionary):字典的格式也是写在{}之间,与集合的不同之处在于字典的每个元素都对应一个键作为索引。字典是一种映射类型,它是无序的键(key) : 值(value)对的集合。可以使用大括号{}或者dict()函数创建字典。
上述数据类型可以分为以下两类:
不可变数据:数字、字符串、元组
可变数据:列表、集合、字典
可以使用type()和isinstance()来查询数据类型。type返回类型名称,isinstance返回布尔值。

条件判断
Python中的条件判断语句是if…else…语句:
if 条件:
    执行操作1
else:
    执行操作2
举例如下:

在使用if…else…语句时一定记得在每一个if条件和else后面都加上英文冒号,且同一层的语句保持相同的缩进(建议4个空格)。上述2点都是容易引起报错的地方。

循环
循环语句提供了一种自动化的、完成重复劳动的便捷方法。其基本语句是for…in…,其中for指定要重复的变量,in指定循环范围。下面举一个案例。笔者希望将下图中的股票代码全部统一变成大写字母:

首先对键和值的数组设置了循环,并使用dict.item()方法,将原字典转化为键和值的元组数组。然后在循环语句内规定了新值的方法,即upper(),再通过key索引将新值更新到字典中,完成目的。
上述操作中的关键之处即在于item()方法。因为for后面跟的循环变量是key,value,属于数组的形式,无法直接在字典中进行遍历,因此需要先将其转换为数组的形式。

函数
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。
函数能提高应用的模块性,和代码的重复利用率。
在实际编程的过程中,可以通过将常用运算编写为函数使代码更加简洁,可读性更高。
定义一个函数的规则:
函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()。
任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。
函数内容以冒号起始,并且缩进。
return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。
函数的基本语法如下:
def functionname( parameters ):
   "函数_文档字符串"
   function_suite
   return [expression]
使用函数的过程中涉及到以下两个问题,容易踩坑:
参数类型是否可变
作用域
上文中提到,数字、字符串、元组为不可变数据类型,列表、集合、字典为可变数据类型。不可变数据类型的参数在调用函数的过程中传递的只是该数据类型的值(相当于复制一份),自身不会发生变化;而可变数据类型的参数传递的是该变量的引用地址,调用函数后会改变。举例如下:

b是数值类型参数,调用函数后自身的值不变。

nameList是列表类参数,调用函数后自身的值也随之改变。

Python的作用域一共有2种:全局作用域,局部作用域。定义在函数内部的变量拥有一个局部作用域,定义在函数外的拥有全局作用域。 局部变量只能在其被声明的函数内部访问,而全局变量可以在整个程序范围内访问。举例如下:


模块
Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。模块让你能够有逻辑地组织你的 Python 代码段。把相关的代码分配到一个模块里能让你的代码更好用,更易懂。模块能定义函数,类和变量,模块里也能包含可执行的代码。
Python的一大优势即其拥有大量可用的第三方模块,这些模块(库)可以高效地解决某些领域的问题,例如数据分析领域的Numpy、Pandas、Scipy、matplotlib等等。
调用模块可以使用三种语句:
import语句
import module1[, module2[,... moduleN]
from…import语句
from modname import name1[, name2[, ... nameN]]
from…import* 语句
from modname import *

数据结构
队列(queue)是限定只能在表的一端进行插入,在表的另一端进行删除的特殊的线性表。即“先进先出”。
堆栈(stack)是一个只在表尾进行删除和插入操作的线性表。即“后进先出”。
在列表中,可以使用append()方法添加元素至队尾。执行队列操作可以通过popleft()方法删除列表最左侧元素;执行堆栈则可以通过pop()方法删除最右侧元素。


我认为编程是一件让人快乐的事,使用代码解决问题以后获得的成就感是难以言表的。而且高效的编程学习方式一定是边学边做,而不是对着复杂的教程硬啃。千万不要等到学完所有的理论才开始动手写第一行代码!Hello World,就在此刻。

6 个回复

正序浏览
回复 使用道具 举报
回复 使用道具 举报
欢迎欢迎
回复 使用道具 举报
666666
回复 使用道具 举报
回复 使用道具 举报
加油加油
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马