跟着lucky老师学Python

第四章 流程控制

2019-04-01  本文已影响0人  帅气的Lucky

一 语音合成

  1. 安装 pywin32-221.win-amd64-py3.6.exe 双击完成安装

  2. 使用

    import win32com.client #系统客户端包
    speak = win32com.client.Dispatch("SAPI.SPVOICE") #系统接口
    speaker.Speak("我是lucky")
    

二 if 语句

  1. 单一条件分支

    if 条件表达式:
     print("为真")
    #特点  只有条件为真才会走
    
  2. 双向条件分支

    if 条件表达式:
     print("为真")
     else:
        print("为假")
     #特点  条件是否成立都会走一个
    
  3. 多向条件分支

    if 条件表达式:
        print("语句1")
    elif 条件表达式:
        print("语句2")
    else:
        print("语句三")
    #特点  一级一级去判断
    
  4. if语句的简写

    num = 5
    print("hello" if num==5 else "world")
    1 if 5>3 else 0
    

二 while循环

  1. while 条件: #如果条件为真就一直执行 也就是死循环
     #循环体
    

  1. #### 打开程序异步模式
       import os
       import time
       os.system("calc") #同步模式,一个程序执行结束,执行下一个
       os.system("start calc") #异步模式
       time.sleep(1) #暂停1秒
    
  2. while :
         pass
    else: 
        pass
    

  3. whlie的简写

    flag = 1
    while (flag<=3): print ('欢迎访问菜鸟教程!');flag+=1
    

三 for 循环

Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串。

Range

  1. 在Python3中,没有xrange()函数,其功能放在了range()函数上

  2. 相区别的是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))
上一篇 下一篇

猜你喜欢

热点阅读