转载请注明本文出自maplejaw的博客(http://blog.csdn.net/maplejaw_)
基本操作
cmd怎么进入python交互环境?
在cmd中输入python,看到>>>
表示成功进入交互环境。
四则运算
在>>>
右边输入代码,控制台可以自动打印结果。可以看出python中的除法和c/java不一样,默认为浮点数。
打印字符
打印字符用print()
,print()
可以打印字符串,数字,布尔值等,可以输入多个参数,用逗号隔开即可,逗号会被打印成空格。
输入字符
有时候需要交互,由用户来输入字符。python提供了一个input()
运行源码
通过控制台交互有个弊端,每次都要重新输入,无法保存源码。怎么才能避免这一繁琐的操作呢。首先在新建一个文本文件命名为1.py
。然后打开1.py
写下如下代码后保存
再次运行cmd,运行。
从上面我们可以看出400+100
这行结果没有输出,说明不同于cmd交互,直接执行源码时,如果没有使用print()
,是不会打印出相关结果的。此外,input
是一个阻塞函数,会等待用户输入完毕才会往后执行。怎么添加注释?
使用#
号,只需在一个语句之后或者单独一个空行中添加相应注释。
# 这是第一条注释
spam = 1 # 这是第二条注释
# 这是第三条注释
text = "# 注意,这里虽然有#号但不是注释,这里是字符串哦"
四则运算
python中的四则运算和其他语言大同小异,支持+
,-
,*
,/
和%
。可以使用()
来分组以支持运算优先级。需要注意的是/
返回的是浮点数,不像C和Java中返回的整型数相除仍是整数。%
用来求余。
>>> 2 + 2
4
>>> 50 - 5*6
20
>>> (50 - 5*6) / 4
5.0
>>> 8 / 5 # 除法默认返回浮动数
1.6
如果你希望除法也返回整数,可以使用//
运算符
使用**
来进行幂运算。
>>> 5 ** 2 # 5 的平方
25
>>> 2 ** 7 # 2 的7次幂
128
我们可以使用=
号来进行赋值给变量,下面中width和height就是一个变量,在python中变量可以不用声明类型因为一旦被赋值,解释器会自动推导出类型。
>>> width = 20
>>> height = 5 * 9
>>> width * height
900
python支持在一行中同时赋值。
>>> width ,height= 20,5 * 9
>>> width * height
900
python中使用_
来表示上一个表达式的值(也就是说,如果上一个值没有赋值给变量,则会默认赋值给_
)。
>>> width = 20
>>> height = 5 * 9
>>> width * height
900
>>> width + _
920
从上面可以看出width * height
没有赋值给变量,所以赋值给了_
,因此width + _
等于20+900
字符串(String)
python中的字符串使用' '
或者" "
包含起来。
有时候,如果打印的字符串本身也包含引号怎么办?此时我们可以混着用,即如果字符串中包含'
,我们可以用" "
来包含字符串,如果字符串中包含"
,我们就用'
来包含字符串,这样我们就可以避免语义冲突了。
>>> "doesn't" # 使用双重引用
"doesn't"
上面的用法并不适用于所有场景,此时应该使用\
转义字符告诉解释器我们需要原样输出,和大多数编程语言的转换规则一样,\n
表示换行,\t
表示制表符。
>>> 'doesn\'t' # 使用转义字符
"doesn't"
>>> 'I\'m \"OK\"!' # 使用转义字符
"I'm "OK"!"
说完需要转义的场景再来说说不需转义的场景。
假如我们想打印一个路径,如下。
>>> print('C:\some\name') # 这里 \n 意味着换行。
C:\some
ame
可以看出,由于\n
导致被迫转义换行,这不是我们需要的,怎么阻止这一行为?
同样我们进行二次转义,告诉解释器,我们需要原样输出
>>> print('C:\some\\name') # 在 \n 之前 加个 \
C:\some\name
此外,我们可以使用r
来修饰字符串,表示整个字符串都原样输出
>>> print(r'C:\some\name') # 在字符串前加上r
C:\some\name
我们知道在cmd窗口中不能换行输入,如果想换行使用"""..."""
或者 '''...'''
,此时可以保持以换行的格式输出。
直接输出如下:
采用变量名输出如下
使用*
或+
进行字符串连接运算。
>>> 3 * 'un' + 'ium' # 3 次 'un', 追加 'ium'
'unununium'
多个使用空格分开的字符串也会自动追加合并
>>> 'i' 'love' 'you'
'iloveyou'
如果需要换行输入,但是要求拼接成一行输出时,我们可以使用(''...'')
和其他编程语言一样,字符串也有索引。下标从0开始。
>>>text="hello world"
>>>print(text[0])
h
当然,我们可以使用负数,表示从右往左开始,-1表示最右边的数。
>>>text="hello world"
>>>print(text[-1])
d
此外,我们还可以,输出多个字符
>>>text="hello world"
>>>print(text[1:3]) # 第一个数字开始索引(包含该位置),第二个数字结束索引(不包含该位置)。
el
>>>print(text[:3]) # 结束索引为3(不包含该位置)。
hel
>>>print(text[3:]) # 开始索引为3(包含该位置))。
lo world
不能对字符串的单个位置进行改变。
可以使用len
函数来输出字符串长度
>>>text="hello world"
>>>print(len(text))
11
数组(List)
首先,我们按照如下格式定义一个数组。
>>> squares = [1, 4, 9, 16, 25]
>>> squares
[1, 4, 9, 16, 25]
跟字符串一样,数组也支持索引。
>>> squares[0] # indexing returns the item
1
>>> squares[-1]
25
>>> squares[-3:] # slicing returns a new list
[9, 16, 25]
跟字符串一样,数组也支持连接操作。
>>> squares + [36, 49, 64, 81, 100]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
跟字符串不一样的地方,数组支持索引修改元素。
>>> cubes = [1, 8, 27, 65, 125] # 其中有个值是错的,经过检查发现是下标为3的元素出错。
>>> cubes[3] = 64 # 修改下标为3的值
>>> cubes
[1, 8, 27, 64, 125]
使用append
可以来追加数组元素。
>>> cubes.append(216) # add the cube of 6
>>> cubes
[1, 8, 27, 64, 125, 216, 343]
我们还可以批量修改数组元素
>>> letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
>>> letters
['a', 'b', 'c', 'd', 'e', 'f', 'g']
>>> # 替换部分元素
>>> letters[2:5] = ['C', 'D', 'E']
>>> letters
['a', 'b', 'C', 'D', 'E', 'f', 'g']
>>> # 移除部分元素
>>> letters[2:5] = []
>>> letters
['a', 'b', 'f', 'g']
>>> # 清空所有元素
>>> letters[:] = []
>>> letters
[]
python也支持二维和多维数组
While循环
使用while循环时,在条件语句后加上:
号,所有循环体内的语句都应该加上至少一个空格的缩进,且一般会在循环结束后留下一行空行。
如上图,你会发现,采用了换行输出的方式。如果不想换行输出,我们可以使用print(a,end='')
指定结束符。
最后
去年就在学习python,由于各种事情,断断续续的一直没有继续下去。这次以博客的形式再次系统的学习一遍,希望自己能够坚持下去。共勉!