流程控制(if while for)

 

流程控制(if while for)

if判断:模拟人一样对事物进行判断

格式:

if 条件:  # 代码块的概念:(同一缩进级别的代码,例如下面的代码1、2、3是相同缩进的代码,这三个代码组合在一起就是一个代码块;相同缩进的代码自上而下的运行)

  代码1  # 空四格

  代码2  # 空四格

  代码3  # 空四格

  ...

gender = "male"
height = 180
weight = 140
salary = 15.5
if gender == "male" and height == 180 and weight > 120 and weight < 160 and salary > 12.5 :
    print("目标已找到")
print("结束!")

映射到电脑上就是一堆变量,如上面的gender、height、weight、salary等

if...else

格式:

if条件:

  代码1  # 空四格

  代码2  # 空四格

  代码3  # 空四格

  ...

else:

  代码1  # 空四格

  代码2  # 空四格

  代码3  # 空四格

  ...

height = 180
weight = 140
look = "handsome"
if height == 180 and weight == 140 and look =="handsome":
    print("终于找到你了!")
else :
    print("you are 路人,快走开!")
print("结束!")

 

if... elif... else

格式:

if条件:

  代码1  # 空四格

  代码2  # 空四格

  代码3  # 空四格

  ...

elif:

  代码1  # 空四格

  代码2  # 空四格

  代码3  # 空四格

  ...

else:

  代码1  # 空四格

  代码2  # 空四格

  代码3  # 空四格

  ...

height = 180
weight = 165
salary = 7.8
if height > 175 and weight > 135 and weight < 145 and salary > 15:
    print("你就是我命中注定的人")
elif height > 175 and weight > 135 and weight < 145 and salary <15:
    print("或许我们可以试着交往一下")
elif height > 175 and weight < 120 and salary <10:
    pint("我觉得你还不错,但是我们不合适")
else:
    print("癞蛤蟆想吃天鹅肉,一边去")
print("交流结束")

先执行if条件,成立则print;若if条件不成立,则到下一步elif,以此类推

练习题:

"""
如果 成绩>=90,打印"优秀"
如果 成绩>=80 并且 成绩<90,打印"良好"
如果 成绩>=70 并且 成绩<80,打印"普通"
其他情况:打印"差"
"""
score = input("please input your score:")
score = int(score)  # 注意类型转换
if score >= 90 :
    print("优秀")
elif score >= 80:
    print("良好")
elif score >=70:
    print("普通")
else:
    print("")

if嵌套:

height = 180
weight = 145
look = "handsome"
salary = 15
if height >175 and weight <160 and look =="handsome":
    print("你年薪多少?")
    if salary > 14 :
      print("你就是我的白马王子!")
else :
    print("我觉得你不是我的骑士,很抱歉!")

while循环

实际生活中类似于重复的做一些事情,流水线上的工人反复劳动,直到下班时间到来

格式:

while条件:

  代码1  # 空四格

  代码2  # 空四格

  代码3  # 空四格

  ...  # while中要避免死循环

# 举例,实现QQ登录
user_db_name = 846719542
pass_db_word = 123456
user_db_name = str(user_db_name)  # 定义为字符串类型才能比较
pass_db_word = str(pass_db_word) # 定义为字符串类型才能比较
while True:
    input_user = input("username")
    input_pass = input("password")
    if input_user == user_db_name and input_pass == pass_db_word:
        print("登陆成功")
    else :
        print("密码错误,请重试")

在此暴露出一个问题:用户输错了要重新输入,但是输对了还需要输入,这就需要改进

while+break******(break意思是终止当前层的循环,执行其他代码;也就是最近的一个while)

user_db_name = 846719542
pass_db_word = 123456
user_db_name = str(user_db_name)  # 定义为字符串类型才能比较
pass_db_word = str(pass_db_word) # 定义为字符串类型才能比较
while True:
    input_user = input("username")
    input_pass = input("password")
    if input_user == user_db_name and input_pass == pass_db_word:
        print("登陆成功")
        break
    else :
        print("密码错误,请重试")

while+continue******(continue的意思是终止本次循环,开始下一次循环)

# 打印1-10
n = 1
while n < 10 :
    print(n)
    n += 1  # 既保证了每次值+1,又保证了不会陷入死循环,因为n+1<10就会结束循环

# 打印1-10,5除外
n = 1
while n <10 :
    if n == 5 :
        n += 1
        continue
    print(n)
    n += 1

注:continue不加在最后一行,因为加在最后没有意义。

 while嵌套循环:

user_db_name = "英雄好汉"
pass_db_word = "123456"
while True :
    username = input("please input your ID:")
    password = input("please input your password:")
    if username == "user_db_name" and password = = "pass_db_word"
        print("欢迎勇士的到来")
        while True:
            order = input("please input your command:")
            if order == "退出"
                break
            print(%s is running...)
    else:
        print("账号或密码错误,请重试")
print("欢迎下次再来,谢谢!")

 for循环*******(不依赖于索引值)

语法结构:

for 变量名 in 容器类型:

  代码1

  代码2

  代码3

# for循环应用在列表中
y = [1,2,3,4]
for i in y :
    print(i)

 

# for循环应用在字典中
y = {"height":180,"weight":145,"hobby":"sleep"} for i in y : print(i)

由以上分别在列表及字典里面的结果可以看出,for循环仅仅是将容器里面的元素取出来;(在字典里面取出来的是key,值是不会暴露给用户的)

***len()  # 获取数据类型(容器类型)的个数,字符串是特例, 获取的是字符串中字符的个数。

for+break****(break用来主动结束for循环):

name_list = ["","","",""]
for name in name_list :
    if name == ""break
    print(name)

 

可以看到,在循环到“孙”时候结束了for循环。

for+continue***(continue表示跳出本循环,开始下一次循环):

name_list = ["","","",""]
for name in name_list :
    if name == "" :
        continue
    print(name)

 

由结果可以看到,在循环到“孙”的时候,此次循环结束,不打印出结果,并开始下一次循环至结束。

for循环的嵌套:

for i in range(1,10) :
    for o in range(1,i+1) :  # 内层循环的条件是由外层循环决定的
        print("%s*%s=%s%"(i,o,i*o),end=" ")
  print()

 

注:不懂,还需要下来再看。

 range在python2及python3中的区别:

在python2中,有range及xrange;其中xrange与python3中range功能一样,相当于迭代器(老母猪),都是用户需要用到多少取多少,而python2中的range则是把范围内所有的值都取出来。

注:range顾头不顾尾,比如range[1,10],结果只会出来1-9,10并不包括在内。

posted @ 2019-07-02 23:22  速8赛亚人  阅读(297)  评论(0编辑  收藏  举报