"人生苦短,我用Python" 很早以前就听过这句话,在B站看《小林家的龙女仆》看小林敲代码时也有大量这样的弹幕刷过(也在大量编程培训班的广告上见过),心想有空就学,有空就学,然后就咕咕咕了

现在因为工作的原因,需要接触它,或许要是再勤快一点,咱能提前见面好几年……

这是我开的一个新坑,前期会跟着 官方 tutorial 并对比之前我学过的其他编程语言,如果有后面就是工作使用过程中的踩坑记录。所以这个系列并不适合当作教程观看,其实更像是一个备忘录

第一印象 —— 方便

自带编辑器

安装好 Python 之后,命令行中输入 python,就会进入一个环境自带的编辑器中,你可以在这里编码

>>> print("Hello World")
Hello World

>>> flag = True
>>> if flag:
...     print("nice to see you")
nice to see you

这样对命令行环境很友好,也难怪许多 Linux 运维被要求掌握这门语言

计算

官方将 计算器 放在整个教程的最前面(而不是一上来就是 Hello world),很符合这个语言的特点(以前看很多人说拿 Python 做科学计算)

首先,Python 是一种弱类型语言,比如 JAVA 中光表示数值的类型就有四种 —— byte,short,int,long,这就导致你在做数值计算(尤其是大数和浮点运算)需要考虑精度问题,数值不能越界(尽管 JAVA 官方也提供了 BigIntegerBigDecimal的解决方案,但使用上不算便利),同样的问题对 Python 来说可就简单了 —— 无需考虑数据类型,想算直接写:

# 浮点运算 1/3 
print(1/3) # 输出结果是 0.3333 而不是当作整形计算输出 0
# 大数运算
print(2**100) # 运算2^100, 不会出现越界问题,而且 JAVA 和 Go 中 都没有提供乘方的运算符
# 整数除法
print(16//3) # 运算结果为 5

字符串、列表与切片

把字符串和列表一起讲,这样的数据结构在其他的语言里有个更常见的叫法:数组(字符串底层就是字符数组),不一样的是 Python 中的列表是可以装入任意类型的元素,并不要求列表中的元素类型相同,同时再次强调:Python 是弱类型,但不是无类型!

在使用上和大多数编程语言类似,都是使用[]索引其中的元素

注意:字符串可以通过索引访问字符,但是不能通过索引修改字符

str = "demo string"
print(str[0]) # 输出 d
str[0] = 'C' # 出错,不允许通过索引修改字符串字符

list = [1,2,3,4,5,6,7]
print(list[0]) # 输出 1
list[0] = '1'
print(list[0]) # 输出 1

切片看起来很亲切,因为 Golang 也有这个,甚至在使用方式上都很类似,但是 Python 提供了更多的玩法

list = [1,2,3,4,5,6,7]
sub_list1 = list[:2] # 和 Golang 一样的用法
sub_list2 = list[2:] # 和 Golang 一样的用法
print(list)
print(sub_list1,sub_list2) # 和 Golang 一样的用法

# 新玩法:负数下标,倒数
sub_list = list[-4,-1] # 截取倒数第四位到倒数第一位的内容
# 新玩法:越界自动处理
sub_list = list[100:] # 自动处理,截取后为空字符串

注意:使用索引访问时,不会自动处理越界情况

# 比如说像这个
list = [1,2,3,4,5,6]
print(list[19]) # 下标越界错误

实现一个小demo

都到这里了,来实现一个 Fibonacci 吧!

a,b = 0,1 # 和 golang 一样
while a < 1000: # 这里必须写循环终止的条件,如果要无限循环 使用 while True:  
    print(a,end='\n')# end= 更改默认的print结束行为
    a,b = b,a+b

参考

python 速览

Q.E.D.


此 生 无 悔 恋 真 白 ,来 世 愿 入 樱 花 庄 。