"人生苦短,我用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 官方也提供了 BigInteger
和 BigDecimal
的解决方案,但使用上不算便利),同样的问题对 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
参考
Q.E.D.