第四章 流程控制
2019-04-01 本文已影响0人
帅气的Lucky
一 语音合成
-
安装 pywin32-221.win-amd64-py3.6.exe 双击完成安装
-
使用
import win32com.client #系统客户端包 speak = win32com.client.Dispatch("SAPI.SPVOICE") #系统接口 speaker.Speak("我是lucky")
二 if 语句
-
单一条件分支
if 条件表达式: print("为真") #特点 只有条件为真才会走
-
双向条件分支
if 条件表达式: print("为真") else: print("为假") #特点 条件是否成立都会走一个
-
多向条件分支
if 条件表达式: print("语句1") elif 条件表达式: print("语句2") else: print("语句三") #特点 一级一级去判断
-
if语句的简写
num = 5 print("hello" if num==5 else "world") 1 if 5>3 else 0
二 while循环
-
while 条件: #如果条件为真就一直执行 也就是死循环 #循环体
#### 打开程序异步模式 import os import time os.system("calc") #同步模式,一个程序执行结束,执行下一个 os.system("start calc") #异步模式 time.sleep(1) #暂停1秒
-
while : pass else: pass
-
whlie的简写
flag = 1 while (flag<=3): print ('欢迎访问菜鸟教程!');flag+=1
三 for 循环
Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串。
Range
-
在Python3中,没有xrange()函数,其功能放在了range()函数上
-
相区别的是xrange(),每次只取出一个迭代对象,如果是数据量比较大时,效率较高
for i in range(5): #range(5) 生成0-4的元祖 print(i) else: pass
四 关键字
break #跳出当前分支结构 或 循环结构
continue #跳过本次循环 继续下一次循环
五 例子
(1)使用for循环控制qq窗口显示隐藏
import win32con #定义
import win32gui #界面
import time #时间
QQ=win32gui.FindWindow("TXGuiFoundation","QQ")#找出QQ窗体编号
for num in range(120):
time.sleep(1)
if num%2==0:
win32gui.ShowWindow(QQ,win32con.SW_HIDE) #设置隐藏
else:
win32gui.ShowWindow(QQ, win32con.SW_SHOW)#设置显示
(2)中奖的概率
import random
num = 432
# for i in range(100,500):
i= 0
while True:
Winning = random.randrange(100,500) #产生一个区间范围的随机数
i+=1
if num == Winning:
print("中奖了 中奖号码是{}".format(num))
break
print(i)
(3)求一个范围的 偶数 基数
#求偶数
for i in range(1,101):
if(i%2==0):
print(i)
#等同于
for i in range(1,101):
if i%2==1:
continue
print(i)
#求基数
for i in range(1,101):
if(i%2!=0):
print(i)
(4)使用系统命令 拿while循环
import os
while True:
cmd = input("cmd")
if cmd=="记事本":
os.system("notepad")
elif cmd=="进程":
os.system("tasklist")
elif cmd=="退出":
break
else:
os.system("echo other")
(5)淘汰某一行 淘汰某一列
for i in range(8):
if i == 5:#淘汰某一行
continue
for j in range(10):
if j==5: #淘汰某一列
continue
print(j, end=" ")
print(' ')
(6) 判断俩个数的大小 如果x>y 将俩个变量交换
x = 3
y = 1
if(x>y):
z = x
x = y
y = z
print(x,y)
不使用临时变量
我们也可以不创建临时变量,用一个非常优雅的方式来交换变量:
x,y = y,x
(7) 猜数字
num2 = 10.1
while True:
try:
num = eval(input("请输入你要猜的数字"))
if num == num2:
print("您猜的真准")
break
elif num>num2:
print("您输入的数字太大了")
else:
print("您输入的数字太小了")
except:
print("请输入正确的数字")
(8) 三角形
#右侧正三角形
for j in range(1,10):
for x in range(1,10-j):
print(' ',end='')
for i in range(1,j+1):
print(i,end='')
print('')
#左侧倒三角形
mylist = list(range(1,10))
mylist.reverse()
for j in mylist:
for i in range(1,j+1):
print(i,end='')
print('')
#右侧倒三角形
mylist = list(range(1,10))
mylist.reverse()
print(mylist)
for j in mylist:
for x in range(1,10-j): #输出空格
print(' ',end='')
newlist = list(range(1,j+1))
newlist.reverse()
for i in newlist:
print(i,end='')
print('')
#while三角形 左正三角形
j = 1
while j<=9:
i = 1
while i<=j:
print(i,end='')
i+=1
j+=1
print('')
#右侧正三角形
j = 1
while j<=9:
k = 1
while k<=9-j:
print(' ',end='')
k+=1
i = j
while i>=1:
print(i,end='')
i-=1
j+=1
print('')
#左侧倒三角形
j = 9
while j>=1:
i = 1
while i<=j:
print(i,end='')
i+=1
j-=1
print('')
#右侧倒三角形
j = 9
while j>=1:
k = 1
while k<=9-j:
print(' ',end='')
k+=1
i = j
while i>=1:
print(i,end='')
i-=1
j-=1
print('')
(9) 登录
dbUserName = 'admin'
dbUserPass = '123456'
while True:
loginName = input('请输入用户名') #动态获取用户名
loginPass = input('请输入密码') #动态获取用户输入的密码
state = 1 #给一个用户名的状态值 默认为1
if loginName != dbUserName: #判断用户名是否不存在
print("该用户名不存在")
state = 2
if state == 1: #判断用户名的状态值 如果为1 证明 用户名正确 所以该判断下面的密码了
if dbUserPass == loginPass: #判断密码是否正确
print('欢迎',loginName)
break
else:
print("请输入正确的密码")
#作业:加上验证码 验证码的要求 随机数(不能每次都是一样的)
dbUserName = 'admin'
dbUserPass = '123456'
while True:
loginName = input('请输入用户名') #动态获取用户名
loginPass = input('请输入密码') #动态获取用户输入的密码
if loginName == dbUserName: #判断用户名是否和之前已经注册过的用户名相同(有人就是该用户是否存在)
if loginPass == dbUserPass:#如果用户名正确 判断密码是否正确
print("欢迎",loginName)
break #r如果密码正确跳出循环体
else:
print("请输入正确的密码")
else:
print("该用户不存在!请输入正确的用户名")
print("我是登录成功以后的内容")
(10) 阶乘
# 通过用户输入数字计算阶乘
# 获取用户输入的数字
num = int(input("请输入一个数字: "))
factorial = 1
# 查看数字是负数,0 或 正数
if num < 0:
print("抱歉,负数没有阶乘")
elif num == 0:
print("0 的阶乘为 1")
else:
for i in range(1,num + 1):
factorial = factorial*i =1*1*2*3*4
print("%d 的阶乘为 %d" %(num,factorial))