写在前面的话
不知不觉毕业已经三年多了,如今的工做中,极少涉及代码的工做。主要接触的项目是BI的建设,作的更多的相似产品经理的工做,或者比较初级的数据分析的工做。
由于没有美工和测试小伙伴,因此还额外承包了这两项工做的我,偶尔也能接触到代码,好比echarts的使用,好比sql语句的编写。除此以外,有时候还有视频制做和文案撰写的工做。总体来讲,整个工做生涯算是比较“充实”,什么都尝试过,因此在即将四周年的时候,我想,我该作点改变,再不疯狂我就老了。
考虑过文案策划及后期制做的工做,可是考虑到三年累计的工做经验,且屈服于现实的情况,我仍是选择继续数据分析的工做,或许这个转折也挺生硬的,并且我其实更喜欢作后期制做的工做(例如明星大侦探里有毒的后期),可是当我作下了这个决定,我就准备努力冲啦!
我不惧怕可能会有复杂的困难,我只惧怕本身未曾努力,而后在老了以后才追悔莫及。
毕竟,我已经丢了三年。
因此,不管如何,加油吧!python
因此下面是认真开始学习的正文
数据分析,我决定从python入手,主要的学习途径是廖雪峰的官方网站。sql
这一步能够跳过,由于以前就已经尝试安装过。windows
不管如何,hello world!安全
print('hello world!')
执行.py文件只能在命令行模式下执行。
在windows下不能直接运行.py文件,可是,在Mac和Linux上是能够的,方法是在.py文件的第一行加上一个特殊的注释:网络
#!/usr/bin/env python3 print('hello, world')
而后,经过命令给hello.py以执行权限:app
$ chmod a+x hello.py
就能够直接运行hello.py了。(然鹅,如今并无Mac,摊手)echarts
print()函数能够接受多个字符串,用逗号“,”隔开,就能够连成一串输出,遇到逗号“,”会输出一个空格。
input()函数用于输入,在输入的同时,在变量中存储了输入的参数。
input()能够显示字符串来提醒用户。编辑器
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为有序集合。是使用方括号的朋友
| 用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自己发生了变化。