基本运算
在了解了怎么安装Python3,,安装IDE之后,接下来我们学习一下Python上面的常用运算符,直接运行解释器后(在Cmd上运行Python),直接在上面进行一些计算,会直接输出答案,要是我们在文件中运行计算题,必须要使用print方法才会有输出,比如
>>> 1+2
3
>>> 1-2
-1
>>>1*2
2
除法/
在Python上是有区别的,一般在java中,两个整数相除,结果是整数。但是在Python里面,两个整数相除总是会得到一个浮点型数值(float),比如
>>> 1/2
0.5
>>>1/3
0.3333333333333333
>>> 10/6
1.6666666666666667
所以python上的除法分成两种,一种是使用/
相除后总是会获得浮点型数值的,另一种则是使用//
运算符,这种做法会获得一个整数数值,丢弃小数部分,比如
>>> 1//2
0
>>>1//3
0
>>>10//6
1
通过**
运算符可以计算幂乘方,比如
>>> 2 ** 3
8
>>> 1.4 ** 2
1.959999999999997
可以看到,普通情况下使用的幂次方是没有问题的,但是对于浮点型的数值使用**
运算符就可能会出现一些意想不到的问题。
使用=
给变量赋值,变量在使用之前,必须进行赋值,否则会报错
>>> var
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'var' is not defined
_
下划线,python把最近一个表达式的值赋值给变量它,这样我们就可以通过_
来获取上一步的计算结果了,但是只能够在>>>
模式下使用
>>> 1+4
5
>>> _
5
注意给_
赋值,否则只会创建一个局部变量,那么我们使用_
访问到的都是这个局部变量。
基本类型
Python支持多种数据类型,像常用的int和float,不常用的用Decimal,Fraction,Date等,所以我们只需要了解常用的数据类型就好了,对于不常用的类型,不适宜入门,要懂得放弃。
下面说一下另一种常用的数据类型,字符串类型。
像很多脚本语言一样,对于字符串,我们使用'xxx'
单引号,或者"xxx"
表示,使用\反斜杠转义引号,如果:
>>> ' "asdd" ' #用单引号包含双引号,不需要转义,反之亦然
' "asdd" '
>>> '\''
"'"
在>>>
模式下我们会看到输出的字符串会带有引号,使用print()函数输出字符串就会隐藏掉最外层的引号了。
>>> print(' "aasd" ')
"aasd"
>>>print('\'')
'
python有一种非常强大的使用原始字符串的语法,在字符串前面加上r
,那么就会保留整一个字符串,不需要转义\
>>>print('\\\\AAA')
\\AA
>>>print(r'\\\\AAA')
\\\\AAA
python还有一种强大的文本编辑能力,使用'''xxx'''
,或者"""xxx"""
,在段落末尾使用\反斜杠可以连接末尾和下一段的开头,比如
>>>print('''
...今天是个好天气,早上\
...下雨了
...''')
今天是一个好天气,早上下雨了
>>>print('''
...今天是个好天气,早上
...下雨了
...''')
今天是个好天气,早上
下雨了
我们也可以使用一些数学操作符对字符串进行处理
#加法运算
>>>print( 'www.'+'baidu.com')
www.baidu.com
#乘法运算
>>>print(3*'w'+'.baidu.com')
www.baidu.com
#python还会把两个字符串自动连接起来
>>>print( 'www' '.baidu.com')
www.baidu.com
对于自动连接这种情况,我测试过会必须是两个'xx'
和'xx'
两个单引号是临近的,这样才会合并成'xxxx'
,而且这些合并的优先级还挺高的,当然非常不建议使用任何不适合阅读语法书写代码,虽然python主张尽可能少的代码,但是不好阅读的语法还是不要用的好,不然看起来眼都花了...
像java语法一样,我们也可以把字符串看做是一个字符数组,然后使用下标来访问对应的字符
>>> str = 'Hello'
>>> str[0]
'H'
>>>str[-1]
'o'
这也是python比较逆天的地方,不但能够正向访问下标,还可以逆向的,对于长期接触,我们的数组下标依然是从0开始,所以-1代表的是末尾第一位
另一个非常逆天的语法是切片,习惯了java的语法,其实我是很不习惯python这样很逆天的语法的,所谓切片,顾名思义,就是获取一个指定的片段,切片语法使用[x:x]
>>> str = 'Hello'
>>>str[2:1]
''#空字符串
所幸找到了一种很好的快速学习切片语法的方式
+---+---+---+---+---+
| h | e | l | l | o |
+---+---+---+---+---+
0 1 2 3 4 5
-5 -4 -3 -2 -1
可以看到两个|
之间形成的字符串组合就是我们要得到的切片,如果我们没有定义切片头或者切片尾,像[:3]
或者[3:]
这样的,默认会填充字符串的头或者尾,对于一切超出切片范围的数值,不会报错,当字符串的头或尾来处理,比如
>>>str = 'hello'
>>>str[0:10]
'hello'
>>>str[-10:5]
'hello'
必须满足切片的左边位置大于右边位置,注意,不是数值上大于,比如上面的例子,[-10:5]
是满足的,但是[-3:1]
就不满足了,因为-3的位置在1的后面。
字符串一旦赋值,是无法被更改的。比如下面的例子就会报错
>>> str[0] = 'e'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment
>>>
如果我们需要修改当前字符串的一个字符,只能将字符串分成两个切片,插入待插入的字符串后,返回一个新的字符串
要查询字符串的长度,使用len(str)函数获取字符串长度
>>> len('hello')
5