python入门(三)
循环和判断(while、for、if)
一、判断(if-else、if-elif-else)
在生活中我们不免要进行一些计算来得到我们想要的结果,举个例子:我们摇塞子,判断点数小于等于3为小点,大于3为大点,塞子有6个点,我们用判断来打印
import random #导入python的随机库
x = random.randint()
if x <= 3:
print('塞子点数为%s,是小点'%x)
else:
print('塞子点数为{},是大点'.format(x))
二、循环(for、while)
打印10句“我爱python”,我们需要写10次print('我爱python'),如果次数更多了呢?是不是就不好实现了,虽然他的时间复杂度比较低,为O(1)。那么我们需要通过for或者while关键字来实现
for i in range(10):
print('我爱python')
i = 0
while i<10:
print('我爱python')
i += 1
复杂循环的实现,比如我们用*组建一个金字塔
*
* *
* * *
* * * *
我们先考虑最简单的打印情况,
n = 4
for i in range(1,n+1): #range()函数循环不包含尾部,所以加1,i能够循环到n
print((i)*'*')
结果会发现
*
* *
* * *
* * * *
我们想办法把*忘邮编移动 print(((n-i)*' ')+((i+1)*'*')),会发现
*
* *
* * *
* * * *
发现这样实现不了,我们还要进行第二层循环,这是我们需要在每一次的*后面加一个‘ ’,那么我们就要对i+1进行循环,实现代码为
n = 4
for i in range(n):
str = ((n-i)*' ' ) # 定义一个变量接收每次初始化的值,因为每次开始的位置都比要空n-i个空格
for j in range(i+1):
str += '* ' #在每次加入*后都要加一个空格
print(str)
这样就实现了
那么这样的话,我们在做一个九九乘法表,我们先考虑一下:
# 1*1=1
# 1*2=2 2*2=4
# 1*3=3 2*3=6 3*3=9
# .......
我们需要两个变量i和j来实现乘法,第一行j只运行了1次,第二行只运行了2次,也就是他是在i以下进行循环的,所以第二层应该是range(i),我们每层运行完才进行换行,我们发现i*j不符合规律
for i in range(1,10):
str = ''
for j in range(1,i+1):
str += ('%s*%s=%s '%(i,j,i*j))
# str += ('%s*%s=%s '%(j,i,i*j))
print(str)
通过运行发现行列不符合规律,他们正好是相反的取值,我们应该用注释掉的代码来实现