day5 if while for

  

    1.注意点:
        ctrl + n 自动补全    
        18行报错,直接定位18行
        逻辑运算符and  or  not  
        复合赋值运算符  += 
        
    2.if-elif
      判断星期几
        猜拳游戏
        
    3.while循环
        1)3大执行流程
        2)什么是 正规写法??    
        3)while的正规格式
    
    4 嵌套(常见的就嵌套1个)
      1) if嵌套
       2if-elif  嵌套
    
    5.while嵌套
     1)案例1:转圈
     2) 打印三角形
    2.1)打印矩形
     3)九九乘法表

 

1.逻辑运算符

  1.1  注意点:

      • ctrl + n 自动补全

        

      • 18行报错,直接定位18行

     

      

 

 

  1.2 逻辑运算符and

    #下面的代码,不会因为上面的5行的if条件满足或者不满足而不一样,即,他们之间没有任何关系

      

      

#-*- coding:utf-8 -*-

#1. input 获得输入
color = input("你白吗?") #白或者黄
money = int(input("你的财产总和:")) #输入10000
beautiful = input("你美吗?") #美 或者普通

#2 if进行判断
# if 白 并且 富 并且 美
# if 白 and 富 and 美
if color == "" and money >= 1000000 and beautiful == "":
    print("白富美。。。")
    print("好羡慕。。。")
else:
    print("矮穷矬")
    print("多读书。。。")

#下面的代码,不会因为上面的5行的if条件满足或者不满足而不一样,即,他们之间没有任何关系
print("多读书。。。")
    print("多读书。。。")

 

   1.3 逻辑运算符or

you = input("你去么?") # 去或者不去
yourWife = input("你老婆去么?") #去或者不去

#if you=="去" 或者 yourWife=="去":
if you=="" or yourWife=="":
    print("可以成功的办好某件事情....")

 

 

   1.4 逻辑运算符not

a = 30

if not (a>0 and a<=50):
    print("在0到50之间....")

      

 

    1.5 复合赋值运算符

    

 

        j = j+3  #c语言中让j加上1的方式:j++;++j; j+=1; j=j+1
                 #python     j+=1  j=j+1
     菜鸟写法,忘记它

 

  难点:

In [20]: a = 1

In [21]: a += 2-4+-2+4+3

In [22]: a
Out[22]: 4

In [23]: a += 2-4+-2+4+3 ----> a = a+(2-4-2+4+3)

 

    

 

2.if-elif

#一种情况
if  条件:
    xxxx

    
    
#2种情况
if 条件:
    xxxx1
else:
    xxxx2
    
    
    
#多种情况,一种成立,其他不会执行
if    条件1:
    xxxx1
elif 条件2
    xxxxx2
elif 条件3:
    xxxx3
。。。。。。。。。
else:     #####(处理,不确定的因素)
    xxxxx
    

 

 

 sex = input("请输入你的性别:")
 
 if sex == "":
     print("你是男人,可以留胡子")
 elif sex == "":
     print("你是女的,可以穿裙子")
 else:
 #elif sex == "中性":
     print("你是中性人,do everything")

 

   2)if 应用

   判断星期几

#1.获取用户输入的数据
num = int(input("请输入数字1-7:"))


#2.根据用户输入的,进行判断
if num == 1:
    print("今天是星期1")
elif num == 2:
    print("今天是星期2")
elif num == 3:
    print("今天是星期3")
elif num == 4:
    print("今天是星期4")
elif num == 5:
    print("今天是星期5")
elif num == 6:
    print("今天是星期6")
elif num == 7:
    print("今天是星期7")
else:
    print("你输入的不正确,请重新输入")

 

           猜拳游戏

  根据运行结果,逆向工程,写出程序

#1.玩家输入信息
player = int(input("请输入:剪刀0|石头1|布2"))

#2 电脑输入的信息
computer = 1

#2.根据玩家输入的,进行判断

#if 玩家获胜条件
if (player==0 and computer==2) or (player==1 and computer==0) or (player==2 and computer==1):
    print("赢了,再来一把")

#if 玩家平局条件
elif player == computer:
    print("平局,决战到天亮")

#if 玩家输了条件
else:
    print("输了,回家拿钱去吧。。。")

 

 

    随机数random

In [16]: import random

In [17]: random.randint(0,2)     #0,1,2 随机整型数
Out[17]: 0

 

 

    完整版本

#-*- coding:utf-8 -*-
import random
#1.玩家输入信息
player = int(input("请输入:剪刀0|石头1|布2:"))

#2 电脑输入的信息
computer = random.randint(0,2)

#2.根据玩家输入的,进行判断

#if 玩家获胜条件
if (player==0 and computer==2) or (player==1 and computer==0) or (player==2 and computer==1):
    print("赢了,再来一把")

#if 玩家平局条件
elif player == computer:
    print("平局,决战到天亮")

#if 玩家输了条件
else:
    print("输了,回家拿钱去吧。。。")

 

 

3.while循环

   1)3大执行流程

    

 

while 条件:
    条件满足的时候执行的事情

 

 

    2)什么是 正规写法??

#不正确写法
num = 1
print(num)

#while 条件:
while num <= 10:
    num = num + 1
    print(num)


#结果
python@ubuntu:~/pythonS6/python基础02$ python3 09-while.py
1
2
3
4
5
6
7
8
9
10
11

 

    

 

      u  撤销

      v  选定这行

      >   向右移动tab

#正规写法
 i = 1
 
 while i <= 10:
     print(i)             #先打印i
     i = i + 1            #再+1   
    

 

 

  3)while的正规格式

i = 1

while i <= 100:
    print("%d"%i)   #等价于 print(i)
    i = i + 1

'''
while 格式

i = 1
while xxxxx:
    xfdaldfssaxx
    ....
    i = i + 1    #必须写这个
'''

 

 

4 嵌套(常见的就嵌套1个)

  1) if嵌套

#1。是否有车票,刀子
ticket = 1 #1代表有票,0代表没票
knife_lenght = 12 #单位cm

#2。先判断是否有车票,能进站bu
if ticket == 1:
    print("通过了车票的检测,进入到车站,马上就要安检了.")

    #判断刀的长度是否合法
    if knife_lenght <= 10 :
            print("通过了安检,进入到候车厅")
            print("马上就要回家,好高兴")
    else:
        print("安检没有通过,等待警察处理....")

else:
    print("兄弟,你还没有买票=,先去买票去吧")

 

 

  2)if-elif  嵌套

#1.用户输入性别
sex = input("输入你的性别 男|女 :")

#2.如果是女的,判断白富美
if sex == "":
    color = input("你白吗 白|不白?")
    rich = int(input("请输入你的账户余额:"))
    beautiful = input("你美吗 美|不美?")
    if color == "" and rich >= 1000000 and beautiful == "":
        print("白富美,你好。。。")
    else:
        print("矮穷矬,多读书。。。")


#3.如果是男的,判断高富帅
elif sex == "":
    color = input("你高吗 高|不高?")
    rich = int(input("请输入你的账户余额:"))
    beautiful = input("你帅吗 帅|不帅?")
    if color == "" and rich >= 1000000 and beautiful == "":
        print("高富帅,你好。。。")
    else:
        print("矮穷矬,多读书。。。")

 

 

5.while嵌套

    while 条件:
        条件满足的时候执行的事情1
        条件满足的时候执行的事情2
        。。。。。
        while 条件2:
            条件2  满足的时候做的事情。。

 

 

  1)案例1:转圈

#执行10遍
    1.站起来
    2.坐下
    3.站起来
    4.转10个圈
    5。坐下


while 条件:
    1.站起来
    2.坐下
    3.站起来
    while 执行10次
        4.转10个圈
    5。坐下    

 

  2) 打印三角形

    

  我咧擦,每次看这个都觉得好简单~~~ 然后就不动手,原来真难!!!

  难--》那就庖丁解牛--》先完成简单的功能

    

  好简单,好简单

    

#版本1
i = 1
while i <= 5:

    print("*****")   #print("*"*5)  好简单

    i = i+1


*****
*****
*****
*****
*****

简直是偷懒至极的做法,要求只能用一个 *


#版本2
i = 1
while i <= 5:

    print"*"*5)  #好简单

    i = i+1


#版本3
i = 1
while i <= 5:

    j = 1
    while j <= 5:
        print("*")  
        j = j+1

    i = i+1

自以为这样就对了吧!!然而,原来打印完*,会自动换行
*
*
*
*
*
*

 

 

#版本4    打印矩形
while i <= 5:

    j = 1
    while j <= 5:
        print("*",end="")   #打印*号,不换行
        j = j+1
    print("")

    i = i+1


#结果 ,到现在才完成了最简单的,太菜
*****
*****
*****
*****
*****

     

 

 

#版本5
 i = 1
 while i<= 5:
     num = int(input("请输入这行要打印的*的个数"))
 
     j = 1
     while j <= num:
         print("*",end="")
         j += 1
 
     print("")
 
     i += 1


#打印结果
请输入这行要打印的*的个数1
*
请输入这行要打印的*的个数2
**
请输入这行要打印的*的个数3
***
请输入这行要打印的*的个数4
****
请输入这行要打印的*的个数5
*****

 

 

 i = 1
 
 while i <= 5:
 
     j = 1
     while j <= i:         #理解这句,最重要了!!!
         print("*",end="")
         j += 1
 
     print("")
 
     i += 1

 

 

  3)九九乘法表

    

    我你个擦擦,完毛线,这个难的要命!!不论是c,java还是别的,就么写出来过

#版本1   #打印9行就行
*
**
***
****
*****
******
*******
********
*********

##################
i = 1

while i <= 9:   #打印9行就行
    
    j = 1
    while j <= i:
        print("*",end="")
        j += 1

    print("")

    i += 1

 

 

#版本2  #打印*换成x*y=z)
X*Y=Z 
X*Y=Z X*Y=Z 
X*Y=Z X*Y=Z X*Y=Z 
X*Y=Z X*Y=Z X*Y=Z X*Y=Z 
X*Y=Z X*Y=Z X*Y=Z X*Y=Z X*Y=Z 
X*Y=Z X*Y=Z X*Y=Z X*Y=Z X*Y=Z X*Y=Z 
X*Y=Z X*Y=Z X*Y=Z X*Y=Z X*Y=Z X*Y=Z X*Y=Z 
X*Y=Z X*Y=Z X*Y=Z X*Y=Z X*Y=Z X*Y=Z X*Y=Z X*Y=Z 
X*Y=Z X*Y=Z X*Y=Z X*Y=Z X*Y=Z X*Y=Z X*Y=Z X*Y=Z X*Y=Z 


#################

i = 1

while i <= 9:
    
    j = 1
    while j <= i:
        print("X*Y=Z ",end="")    #打印*换成x*y=z)
        j += 1

    print("")

    i += 1
 

 

 

#版本3      y换成i 
X*1=Z 
X*2=Z X*2=Z 
X*3=Z X*3=Z X*3=Z 
X*4=Z X*4=Z X*4=Z X*4=Z 
X*5=Z X*5=Z X*5=Z X*5=Z X*5=Z 
X*6=Z X*6=Z X*6=Z X*6=Z X*6=Z X*6=Z 
X*7=Z X*7=Z X*7=Z X*7=Z X*7=Z X*7=Z X*7=Z 
X*8=Z X*8=Z X*8=Z X*8=Z X*8=Z X*8=Z X*8=Z X*8=Z 
X*9=Z X*9=Z X*9=Z X*9=Z X*9=Z X*9=Z X*9=Z X*9=Z X*9=Z 


####################
i = 1

while i <= 9:
    
    j = 1
    while j <= i:
        print("X*%d=Z "%(i),end="")
        j += 1

    print("")

    i += 1

 

 

#版本4    j换成x
1*1=Z 
1*2=Z 2*2=Z 
1*3=Z 2*3=Z 3*3=Z 
1*4=Z 2*4=Z 3*4=Z 4*4=Z 
1*5=Z 2*5=Z 3*5=Z 4*5=Z 5*5=Z 
1*6=Z 2*6=Z 3*6=Z 4*6=Z 5*6=Z 6*6=Z 
1*7=Z 2*7=Z 3*7=Z 4*7=Z 5*7=Z 6*7=Z 7*7=Z 
1*8=Z 2*8=Z 3*8=Z 4*8=Z 5*8=Z 6*8=Z 7*8=Z 8*8=Z 
1*9=Z 2*9=Z 3*9=Z 4*9=Z 5*9=Z 6*9=Z 7*9=Z 8*9=Z 9*9=Z 


####################
i = 1

while i <= 9:
    
    j = 1
    while j <= i:
        print("%d*%d=Z "%(j,i),end="")
        j += 1

    print("")

    i += 1

 

 

#版本5    i*j 换成Z

1*1=1 
1*2=2 2*2=4 
1*3=3 2*3=6 3*3=9 
1*4=4 2*4=8 3*4=12 4*4=16 
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81 


###########################

i = 1

while i <= 9:
    
    j = 1
    while j <= i:
        print("%d*%d=%d "%(j,i,j*i),end="")
        j += 1

    print("")

    i += 1

 

 

  最终版本

    

 i = 1
 
 while i <= 9:
 
     j = 1
     while j <= i:
         print("%d*%d=%d\t "%(j,i,j*i),end="")
         j += 1
 
     print("")
 
     i += 1

 

 

#制表符 tab   \t

In [2]: print("helloworld")
helloworld

In [3]: print("hello\tworld")
hello    world

 

 

 

  

 

posted @ 2017-11-13 17:34  venicid  阅读(159)  评论(0编辑  收藏  举报