1.三大流程的提出
由冯诺依曼提出(提出计算机有五大部分组成的人),被称为现代电子计算机之父,计算机界的祖师。所有的编辑语言都要遵循此三大流程,冯诺依曼获得了第一届图灵奖(计算机界的诺贝尔奖)。
2.分支结构
分支结构分为单分支:语句遇到什么情况就做什么事。if 条件(关系运算符或逻辑运算符,最后得到一个布尔值)
单分支的问题是:只能输出一个答案。不能进行AB选项。这时需要进行多分支。
if 条件:
#条件满足执行的代码
else:
#条件不满足执行的代码
多分支(三分支):
if 条件1:
#执行符号条件一的代码;
elif 条件2:
#执行符合条件2的代码
以此类推到条件n
else:(前面所有的条件都不满足的情况)
#则执行这里
Python while循环
1、while 循环简介
for 循环用于针对集合中的每个元素都一个代码块,而while循环不断的运行,直到指定的条件不满足为止。
1.1、使用while 循环:
循环从1数到5:
number = 1 # 指定从1开始数
while number <= 5: # 只要number小于或等于5 就接着运行这个循环
print(number) # 打印循环的值
number += 1 # 再给number值 + 1
# 由此类推, 一旦number大于5,循环就停止,整个程序也将到此结束
# 输出结果如下:
1
2
3
4
5
1234567891011
1.2、使用break退出循环:
要立即退出while 循环,不再运行循环中余下的代码,也不管条件测试的结果如何,可使用break 语句
while True: # while True 打头的循环 将不断运行, 知道遇到break 语句
city = input('输入您再的城市:') # 再输入中,如果输入1 就执行到 break 语句就会退出
if city == 1:
break
else:
print('我喜欢去{}'.format(city))
1234567
注意: 在任何Python循环中都可使用break 语句。例如,可使用break 语句来退出遍历列表或字典的for 循环。
1.3、再循环中使用 continue:
要返回到循环开头,并根据条件测试结果决定是否继续执行循环,可使用continue 语句,它不像break 语句那样不再执行余下的代码并退出整个循环。
number = 0 # 先将number 设置为0 ,
while number < 10: # 由于小于10 python 进行while循环
number += 1 # 进入循环后以步长1的方式往上数
if number % 2 == 0: # if 语句检查 number 与 2的求模运算结果, 如果结果为0就意味的number可以被2整出, 就执行continue 语句, 让Python忽略余下代码,并返回到循环的开头
continue
print(number)
# 输出结果:
1
3
5
7
9
123456789101112
continue语句是一个删除的效果
var = 10
while var > 0:
var = var - 1
if var == 5 or var == 8:
continue
print('当前值:', var)
print('Bye')
1234567
总结:
continue 语句用来告诉Python 跳过当前循环的剩余语句, 然后继续进行下一轮循环continue 语句用在while和 for 循环中
Python continue 语句跳出本次循环, 而break跳出整个循环
1.4、避免无限循环:
每个while 循环都必须有停止运行的途径,这样才不会没完没了地执行下去
x = 1
while x <= 5:
print(x)
x += 1
# 输出结果如下:
1
2
3
4
5
12345678910
如果不是想确定无限循环的话,必须有一个条件来终结这个循环。能够让循环条件为False或break语句结束无限循环。
2、使用while循环来处理列表和字典:
for 循环是一种遍历列表的有效方式,但在for 循环中不应修改列表,否则将导致Python难以跟踪其中的元素。
要在遍历列表的同时对其进行修改,可使用while 循环。
通过将while 循环同列表和字典结合起来使用,可收集、存储并组织大量输入,供以后查看和显示。
2.1、在列表之间移动元素:
有一个列表里面有元素, 怎么才可以把他里面的这些元素添加到另一个空列表中?
my_list = ['alice', 'brian', 'candace']
new_list = []
while my_list:
cur_list = my_list.pop() # 使用pop()方法的时候, 从my_list列表中, 从末尾的元素删除,pop()删除的值可以赋值给变量cur_list, 依次赋值给cur_list
new_list.append(cur_list) # 将变量添加到new_list中
for item in new_list: # 循环new_list 里面就会有跟my_list 相同的元素
print(item)
# 输出结果如下:
candace
brian
alice
12345678910111213
2.2、删除包含特定值的所有列表元素:
使用remove()来删除列表中的特定值,之所以用它,因为要删除的值再列表中只出现了一次。
如果要删除列表中所有包含特定值的元素,该怎么办?
my_list = ['cat', 'dog', 'cat', 'goldfish', 'rabbit', 'cat'] # 列表中多个包含'cat'
while 'cat' in my_list: # 循环
my_list.remove('cat')
print(my_list)
for循环
for i in range(10):
求阶乘
#输出
a = int(input('请输入一个值:'))
#阶乘控制单位
total = 1
#求阶乘
for i in range(1,a+1,1): ##起始值为1,终止符为a+1,间隔为1求阶乘
total *= i
print(total)
12345678
练习求1,2,3,4四个数字可以组成多少个不同的且不重复的三位数字
"""
file:求1,2,3,4四个数可以组成多少个不重复且不相同的三位数字并打印
date:2019-6-23 09:46
description:
"""
#不相同数字的数目
num = 0
#对三位数字取值
for g in range(1,5,1):
for s in range(1,5,1):
for b in range(1, 5, 1):
#判断三个数字是否有相同数字,若没有则打印且num自加1
if(g != s and g != b and b != s ):
print('%d%d%d' %(b,s,g))
num += 1
#输出有多少个不重复数字
print('共%d个不重复且不相同的数字' %(num))
1234567891011121314151617
在这里插入代码片
1
跳出循环
break:跳出循环
continue:continue后的程序不执行,但后续循化会继续执行
exit:终止程序运行(exit为函数)
for循环实现用户登录
"""
1.输入用户和密码
2.判断是否正确(name = 'root',passwd = 'westos')
3.登陆仅有三次机会,超过三次则报错
for循环实现用户登录
"""
for i in range(3):
name = input('用户名:')
passwd = input('密码:')
if ((name == 'root') and (passwd == 'westos')):
print('登陆成功')
break
else:
print('登陆失败')
print('您还有%d次机会' %(2-i))
else:
print('失败超过三次,请稍后再试')
12345678910111213141516171819
简单实现shell命令
import os
for i in range(1000):
cmd = input('[root@python ~]')
if cmd:
if cmd == 'exit':
print('logout')
else:
os.system(cmd)
else:
continue
12345678910
求最大公约数与最小公倍数
a = int(input('输入第一个数:'))
b = int(input('输入第二个数:'))
small = min(a,b)
big = max(a,b)
sum = 1
for i in range(1,small+1):
if (a % i == 0) and (b % i == 0):
sum = 1 * i
continue
print('最大公约数为:%d' %(sum))
print('最小公倍数为%d' %(a*b/sum))
123456789101112
while
while 条件:
条件满足时,做的事情
条件满足时,做的事情
…
eg:
#1.定义计数器
i = 0
#2.条件判断
while i < 3:
#3.处理计数器
i = i + 1
print("%d" %(i))
12345678
while实现for循环编辑的简易用户登录
i = 0
while i <= 2:
name = input('用户名:')
passwd = input('密码:')
if ((name == 'root') and (passwd == 'westos')):
print('登陆成功')
break
else:
print('登陆失败')
print('您还有%d次机会' %(2-i))
i = i + 1
else:
print('失败超过三次,请稍后再试')
12345678910111213
while打印四种直角三角形
第一行输出1颗星,每行依次加一颗星,直至第六行
第一种
row = 1
while row <= 6:
col = 1
while col <= row:
print('*',end='')
col += 1
print('')
row += 1
123456789
第二种
倒序输出上题条件
row = 1
while row <= 6:
col = 6
while col >= row:
print('*',end='')
col -= 1
print('')
row += 1
123456789
打印乘法口诀表
num = 1
while num <= 9:
col = 1
while col <= row:
print('%d * %d = %d ' %(col,num,col*num),end='')
col += 1
print('')
num += 1
12345678
猜数字游戏
1.电脑随即输入1~30中的某个数字
2.玩家输入数字若正确则输出“congratulation”
3.若数字太大则提示“大了“
4.若数字太小则提示“小了”
5.共有五次机会
import random
num = 0
c = int(random.randint(1, 30))
while True and num <=4 :
print('您还有%d次机会' % (5 - num))
i = int(input('请输入数字:'))
if i == c:
print('congratulation')
break
elif i > c:
print('大了')
num += 1
else:
print('小了')
num += 1
if num == 5:
print('数字为%d,你猜错啦' %(c))