【跟着Head First学Python】1、基础知识:快速入门

近来准备学一下python,研究生主要做有关数据挖掘方面的,因此要学。只看书和码代码感觉很虚,写一写博客感觉会好很多。

head first使用的是python 3.7,因此我也先学3.7,听说2.4和3.7大多数都是相同的,所以并无大碍。

笔记上一般只记录自己觉得需要记的或者易错的地方。

1、import 与 from import

import 后面接的是模块,模块里面有一大堆函数。因此

import datetime
print(datetime.datetime.now())

上述代码中,import引入的是整个datetime模块,该模块中有一个叫datetime的类,这个类中有一个叫now的函数,调用这个函数可以返回当前时间。因此,我要想调用这个函数,就需要连续层层剥开三次,找到这个函数。

这种方式下,调用函数较为麻烦,但是可以一下子引入一大堆函数。

from A import B

这句话的意思是从模块A中引入对象或者函数B。因此

import datetime from datetime
print(datetime.now())

上述代码中,点名引入datetime模块中的datetime类。调用函数now就可以少剥一层了。

这种方式调用函数较为简单,但是不能用datetime模块中的其他类或者函数。

这两种方法都可以用,看喜好,但当两个模块A和B中有一个同名函数c时,就必须使用第一种方式了,因为第二种方式没法区别到底是想用哪个c。

2、冒号:

在C中使用{}的地方。这里都用:来代替。我总是忘,然后就会报错。

冒号:一定会引入一个必须向右缩进的代码组。

else也有冒号。TMD

elif也有冒号,lzzscl

3、for循环

python的for循环很厉害,比C++的厉害多了。

对于数组或者字符串,python可以按数组元素或者字符串中的字符一个一个从前往后循环,如下:

for i in [1,2,3]:
    print(i)
for ch in "abc":
    print(ch)

上述代码中,有两点要注意,其一是for循环的结构,是for a in A,A就是循环范围,a就是循环变量,其二则是for循环后面有冒号。

另外,print函数后面默认带有换行,表示字符串时,单引号和双引号都行,但是字符串中有单引号时,用双引号好点。

还有一种循环方式如下:

for num in range(5)
    print("LGD是不可战胜的!")

与上面的区别就是,in后面跟着的是range,意思就是范围是5,整段代码会调用print5次。

range函数默认有三个参数,range(start,stop,step)

start是起点,stop是终点,step是步长。如果range只有一个参数,那么这个参数就是stop值,start默认为0,step默认为1。

当step为正数时,那么就是从起点到终点,起点要小于终点;当step为负数时,那么还是起点到终点,但起点要大于终点,如果起点小于终点,那么就什么都得不到。

注意一点,stop的值是不会得到的,也就是说,range提供一个左闭右开的区间。

step的值的效果如下:

range(0,10,2)

0,2,4,6,8

range(0,10,3)

0,3,6,9

也就是说,start是一定会输出的,然后隔step-1个元素输出第二个,直到stop,stop不输出。

再注意一点,见以下两组代码:

for i in range(0,10,2):
    print(i)
for i in range(0,10,2):
    i=9
    print(i)

其输出如下:

也就是说,在循环体中,如果不更改循环变量的值,那么循环变量的值就会按照range的指示一点点往上跳;如果更改循环变量的值,那么循环变量值会变化,但是循环次数不变。这是因为,python中的循环其实是新建一个迭代器,在for那句写完之后,循环次数就确定了,除了用break以外,循环次数不能变化。

4、input函数

input函数的参数可以是一个字符串,返回的就是输入值,相当于scanf和printf的合体。如下:

word=input("Please provide a word:")

这样将会显示出后面的那个字符串,同时,word的值会是你键入的值。


版权声明:本文为erwugumo原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。