磨刀霍霍:我李汉三又回来写代码啦~

58次阅读

共计 2642 个字符,预计需要花费 7 分钟才能阅读完成。

写在前面的话不知不觉毕业已经三年多了,现在的工作中,极少涉及代码的工作。主要接触的项目是 BI 的建设,做的更多的类似产品经理的工作,或者比较初级的数据分析的工作。因为没有美工和测试小伙伴,所以还额外承包了这两项工作的我,偶尔也能接触到代码,比如 echarts 的使用,比如 sql 语句的编写。除此之外,有时候还有视频制作和文案撰写的工作。整体来说,整个工作生涯算是比较“充实”,什么都尝试过,所以在即将四周年的时候,我想,我该做点改变,再不疯狂我就老了。考虑过文案策划及后期制作的工作,但是考虑到三年累计的工作经验,且屈服于现实的状况,我还是选择继续数据分析的工作,或许这个转折也挺生硬的,而且我其实更喜欢做后期制作的工作(例如明星大侦探里有毒的后期),但是当我做下了这个决定,我就准备努力冲啦!我不害怕可能会有复杂的困难,我只害怕自己不曾努力,然后在老了之后才追悔莫及。毕竟,我已经丢了三年。所以,无论如何,加油吧!
所以下面是认真开始学习的正文数据分析,我决定从 python 入手,主要的学习途径是廖雪峰的官方网站。
python 的简介和安装
这一步可以跳过,因为之前就已经尝试安装过。
第一个 python 程序
无论如何,hello world!
print(‘hello world!’)

python 交互模式和命令行模式的不同
执行.py 文件只能在命令行模式下执行。在 windows 下不能直接运行.py 文件,但是,在 Mac 和 Linux 上是可以的,方法是在.py 文件的第一行加上一个特殊的注释:
#!/usr/bin/env python3

print(‘hello, world’)

然后,通过命令给 hello.py 以执行权限:
$ chmod a+x hello.py

就可以直接运行 hello.py 了。(然鹅,现在并没有 Mac,摊手)
输入和输出
print() 函数可以接受多个字符串,用逗号“,”隔开,就可以连成一串输出,遇到逗号“,”会输出一个空格。input() 函数用于输入,在输入的同时,在变量中存储了输入的参数。input() 可以显示字符串来提醒用户。
Python 基础
python 的注释是用 #,使用缩进方式的语法,当以:结尾时,视为代码块。按照约定俗成的管理,应该始终坚持使用 4 个空格的缩进。
请务必注意,Python 程序是大小写敏感的,如果写错了大小写,程序会报错。
数据类型
整数、浮点数、字符串。
如果字符串里面有很多字符都需要转义,就需要加很多,为了简化,Python 还允许用 r ” 表示 ” 内部的字符串默认不转义如果字符串内部有很多换行,用 n 写在一行里不好阅读,为了简化,Python 允许用 ”’…”’ 的格式表示多行内容,注意在输入多行内容时,提示符由 >>> 变为 …,提示你可以接着上一行输入,注意 … 是提示符,不是代码的一部分。
布尔值 使用 and or not 计算。
空值 None 但不等同与 0,因为 0 是有意义的。
变量 可以是任意数据类型,也可以重复赋值。
| 动态语言和静态语言的区别。静态语言在定义变量时候必须指定变量类型(eg:Java)。| 理解变量在内存中的表示。
常量 Python 中,通常用大写的变量名表示常量。
| 除法 地板除 求余数
10 / 3 无论除数与被除数是否为整数,结果都为浮点数
10 // 3 只取结果的整数部分
10 % 3 得出余数
字符串与编码
对于单个字符的编码,Python 提供了 ord() 函数获取字符的整数表示,chr() 函数把编码转换为对应的字符。由于 Python 的字符串类型是 str,在内存中以 Unicode 表示,一个字符对应若干个字节。如果要在网络上传输,或者保存到磁盘上,就需要把 str 变为以字节为单位的 bytes。
ython 对 bytes 类型的数据用带 b 前缀的单引号或双引号表示
x = b’ABC’
y = ‘ABC’
x 与 y 是不同的,x 是字节型的,y 是 str,x 的每个字符只占用一个字节纯英文的 str 可以用 ASCII 编码为 bytes,内容是一样的,含有中文的 str 可以用 UTF- 8 编码为 bytes。含有中文的 str 无法用 ASCII 编码,因为中文编码的范围超过了 ASCII 编码的范围,Python 会报错。
在 bytes 中,无法显示为 ASCII 字符的字节,用 x## 显示。
反过来,如果我们从网络或磁盘上读取了字节流,那么读到的数据就是 bytes。要把 bytes 变为 str,就需要用 decode() 方法。
如果 bytes 中包含无法解码的字节,decode() 方法会报错。
如果 bytes 中只有一小部分无效的字节,可以传入 errors=’ignore’ 忽略错误的字节。
len() 函数计算的是 str 的字符数,如果换成 bytes,len() 函数就计算字节数。
1 个中文字符经过 UTF- 8 编码后通常会占用 3 个字节,而 1 个英文字符只占用 1 个字节。
为了保证源文件以 utf- 8 读出,需要在开头注释:
#!/usr/bin/env python3 — 告诉 Linux/OS X 系统,这是一个 Python 可执行程序,Windows 系统会忽略这个注释;
# -*- coding: utf-8 -*- — 告诉 Python 解释器,按照 UTF- 8 编码读取源代码,否则,你在源代码中写的中文输出可能会有乱码。
如果要保证源文件是 utf- 8 编码,需要在编辑器中进行设定。
格式化
% 和 format()
使用 list 和 tuple
| list 为有序集合。是使用方括号的朋友 | 用 len() 可以获取元素个数。索引从 0 开始,最后一个元素的索引为 len(list)-1。获取最后一个元素,还可以用 - 1 作为索引,直接获得最后一个元素。
| list 为可变的有序表,可以 append() 追加元素到末尾;可以 insert() 到指定位置;可以 pop() 删除最末尾元素,参数可以为 i,即索引位置;可以直接赋值给对应的索引位置 list[i] = value;内里的元素类型也可以各自不同,或者为另一个 list。当 list 里面啥都没有的时候,len(list) 输出为 0。

| tuple-> 元祖,一旦初始化就不能修改。因为不可变,所以更安全。是使用圆括号的朋友
定义一个只有 1 个元素的 tuple,要使用 (1,),加上逗号,不产生歧义,否则可能会误认为数学计算。
t = (1,)
理解“可变的 tuple”
>>> t = (‘a’, ‘b’, [‘A’, ‘B’])
>>> t[2][0] = ‘X’
>>> t[2][1] = ‘Y’
>>> t
(‘a’, ‘b’, [‘X’, ‘Y’])
其实变化的是 tuple 里的 list 的指向,所以并不是 tuple 本身发生了变化。

正文完
 0