从python开始学编程—第二章 先做键盘侠
2.1计算机会算数
2.1.1数值运算
python内置的算术运算符有:加:+、减:-、乘:*、除:/、求整://、求余:%、
幂:** 下面是运算演示:
>>> 2+2
4
>>> 2-2
0
>>> 2*2
4
>>> 2/2
1.0
>>> 3//2
1
>>> 3%2
1
>>> 2**2
4
除了数值运算,字符串同样可以进行相加,效果是将两个字符串连接在一起。
并且一个字符串和n相乘的话,会把字符串重复n次
>>> "I" + "_love" + "_python"
'I_love_python'
>>> "python" * 2
'pythonpython'
2.1.2逻辑运算
在python中用布尔值来代表真假:True表示真,False表示假。同时在复合命题中,and表示逻辑“与”,or表示逻辑“或”,下面是代码演示:
>>> True and True
True
>>> True and False
False
>>> True or False
True
>>> True or True
True
2.1.3判断表达式
相等:==、大于:>、大于等于:>=、小于:<、小于等于:<=、不等于:!=
下面是代码演示:
>>> 1 == 1
True
>>> 1 < 2
True
>>> 1 > 2
False
>>> 1 != 2
True
>>> 1 <= 1
True
>>> 1 >= 1
True
2.1.4运算优先级
幂>乘除>加减>判断>逻辑,同一优先级从左到右运算,有小括号的话先运行括号内的。
2.2计算机记性好
2.2.1变量
程序用变量来储存数据,新建变量时,计算机在空闲的内存中开辟储存空间,根据变量的类型,分配的空间会有大小变化,程序员给变量起一个变量名,在程序中作为该变量的索引,数据交给变量,需要时就通过调用变量名来提取数据。
用等号:= 为变量赋值
>>> a = 1
>>> print(a)
1
2.2.2变量的类型
常见的类型包括整型int、字符串str、浮点数float、布尔值bool
>>> a = 1 #整型
>>> a
1
>>> a = 1.0 #浮点数
>>> a
1.0
>>> a = '1' #字符串
>>> a
'1'
>>> a = True #布尔型
>>> a
True
2.2.3序列
序列是有顺序的数据集合。序列可以包含一个或多个元素,也可以是完全没有任何元素的空序列。
序列有两种,元组Tuple和列表List。在建立后,元组的各个元素不可变更而列表的元素可以。
>>> a = (1,2,3,4)
>>> type(a)
<class 'tuple'>
>>> a
(1, 2, 3, 4)
>>> b = [1,2,3,4,[5,6,7]]
>>> type(b)
<class 'list'>
>>> b
[1, 2, 3, 4, [5, 6, 7]]
由于元组不能改变数据,所以很少会建立一个空的元组。而序列可以增加和修改元素,所以经常会建立空表。
为了方便找到数据,我们通过序列元素的下标进行索引,从左到右为0到n,从右到左为-1到-n,除此之外你还可以通过下表对某个元素进行替换。
>>> b = [1,2,3,4]
>>> b[1]
2
>>> b[-2]
3
>>> b[1]=5
>>> b
[1, 5, 3, 4]
还可以通过范围查询:序列名[下限:上限:步长]
>>> b = [1,2,3,4]
>>> b[0:3]
[1, 2, 3]
>>> b[0:4]
[1, 2, 3, 4]
>>> b[0:4:2]
[1, 3]
2.2.4词典
词典与表类似,但词典不具备序列那样的连续有序性适用于储存结构松散的一组数据。且词典允许用自定义的方式来建立数据的索引,词典的元素包含两部分:键Key 和 值Value。键是数据的索引,值是数据本身,键和值一一对应。
>>> c = {"apple":"red","banana":"yellow"}
>>> c["apple"]
'red'
2.3计算机懂选择
2.3.1 选择语句if、elif 和 else
a = eval(input("请输入一个整数:"))
if a > 50:
print("a大于50")
if a > 75:
print("a不仅大于50而且大于75")
elif a == 50:
print("a等于50")
else:
print("a小于50")
下面是结果
>>>
=================== RESTART: C:/Users/m1800/Desktop/测试.py ===================
请输入一个整数:85
a大于50
a不仅大于50而且大于75
>>>
=================== RESTART: C:/Users/m1800/Desktop/测试.py ===================
请输入一个整数:50
a等于50
>>>
=================== RESTART: C:/Users/m1800/Desktop/测试.py ===================
请输入一个整数:25
a小于50
2.3.2循环语句for循环
a = [1,2,3,4]
for i in range(2):
print("apple")
for i in a:
print(i)
if i == 2:
continue
elif i == 3:
break
下面是运行结果
>>>
=================== RESTART: C:/Users/m1800/Desktop/测试.py ===================
apple
apple
1
2
3
2.3.3循环语句while
i = 0
while(True):
print(i)
i += 1
if i == 3:
break
下面是运行结果
>>>
=================== RESTART: C:/Users/m1800/Desktop/测试.py ===================
0
1
2
小练习
i = 0 # i用来记还款次数
residual = 500000.0
discount_tuple = (0.01, 0.02, 0.03, 0.035)
repay = 30000.0
while residual > 0:
i += 1
if i <= 4:
discount = discount_tuple[i-1]
else:
discount = 0.05
residual = residual * (discount + 1) - repay
print("第{}年还清".format(i+1))
下面是运行结果
>>>
=================== RESTART: C:/Users/m1800/Desktop/测试.py ===================
第31年还清