python-day02 判断语句、while循环、for循环

判断语句

判断的定义

  • 如果 条件满足,才能做某件事情,
  • 如果 条件不满足,就做另外一件事情,或者什么也不做

正是因为有了判断,才使得程序世界丰富多彩,充满变化!

判断语句 又被称为 “分支语句”,正是因为有了判断,才让程序有了很多的分支

if语句

if语法结构(4空格缩进)

if expression:
    if_suite
else:
    else_suite
       如果表达式的值 非0 或者为布尔值 True,则代码组 if_suite 被执行;否则就去执行 else_suite。

[root@python day02]# cat demo01_if.py 

if 15<18:
    print('未成年人禁止入内')
else:
    print('允许入内')
[root@python day02]# python3 demo01_if.py 
未成年人禁止入内
[root@python day02]# cat demo01_if.py

if 25<18:
    print('未成年人禁止入内')
else:
    print('允许入内')
[root@python day02]# python3 demo01_if.py 
允许入内

if语句示例:

只要表达式数字为 非零值 即为 True;  空字符串、空列表的值均为 False

[root@python day02]# vim demo01_if.py
#列表
#[] -> False
#列表只要有内容就不是空列表
if []:
    print('list ok')
else:
    print('list no')

#字符串作为条件
#'' 空字符串 False
if 'hello':
    print('str 0k~')
else:
    print('str no~')
    
#数字作为条件
#除0以外都是True,只有0是Flase
if 1:
    print('1 ok')
else:
    print('1 no')
[root@python day02]# python3 demo01_if.py 
list no
str 0k~
1 ok

None为假,取反为真(not None); 

[root@python day02]# vim demo01_if.py
#None 和 Null类似
#None -> False
if None:
    print('None ok~')
else:
    print('None no~')
[root@python day02]# python3 demo01_if.py 
None no~

if语句练习 :提示用户输入用户名和密码,如果用户名为bob,密码为123456,则输出Login successful,反之输出Login incorrect

[root@python day02]# cat test01_if.py 
#提示用户输入用户名和密码
#如果用户名为bob,密码为123456,则输出Login successful,反之输出Login incorrect
username=input('username:')
password=input('password:')
if username == 'bob' and password == '123456':
    print('Login successful')
else:
    print('Login incorrect')

[root@python day02]# python3 test01_if.py 
username:www
password:qqqq
Login incorrect
[root@python day02]# python3 test01_if.py 
username:bob
password:123456
Login successful

扩展+if语句

if扩展语句语法结构(多分支)
if expression:
    if_suite
elif expression2:
    elif_suite 
else:
    else_suite

例子:编写判断成绩的程序
如果成绩大于60分,输出“及格”
如果成绩大于70分,输出“良”
如果成绩大于80分,输出“好”
如果成绩大于90分,输出“优秀”
否则输出“你要努力了”

[root@python day02]# cat test02_elif.py 
score = int (input('请输入你的成绩:'))
#如果没有在0~100之间
if score < 0 or score >100:
    print("成绩格式错误")
elif score >= 90:
    print('优秀')
elif score >=80:
    print('良')
elif score >=70:
    print('好')
elif score >=60:
    print('及格')
else:
    print('继续努力')
[root@python day02]# python3 test02_elif.py 
请输入你的成绩:-1
成绩格式错误
[root@python day02]# python3 test02_elif.py 
请输入你的成绩:90
优秀

while循环详解(未知循环次数)

在程序开发中,一共有三种流程方式:

  • 顺序 —— 从上向下,顺序执行代码
  • 分支 —— 根据条件判断,决定执行代码的 分支
  • 循环 —— 让 特定代码 重复 执行

循环概述

  1. 一组被重复执行的语句称之为 循环体,能否继续重复,决定循环的终止条件
  2. Python 中的循环中 while 循环和 for 循环
  3. 循环 次数未知 的情况下,建议采用 while 循环
  4. 循环 次数可以预知 的情况下,建议采用 for 循环
何时使用
  • 减少重复性代码,提高代码效率
while循环语法结构:

while expression:
    while_suite

例子:计算1-100之间所有整数的和

[root@python day02]# vim demo_while.py
#计算1-100之间所有整数的和
i=1
sum=0
while i<=100:
    sum=sum+i
    i +=1
print(sum)
[root@python day02]# python3 demo_while.py
5050
break、continue 和 else

breakcontinue 是专门在循环中使用的关键字

  • break 某一条件满足时,退出循环,不再执行后续重复的代码
  • continue 某一条件满足时,跳过当前循环,不执行 continue 后续重复的代码

breakcontinue 只针对 当前所在循环 有效

break

  • 在循环过程中,如果 某一个条件满足后 再希望 循环继续执行,可以使用 break 退出循环

continue

  • 当遇到 continue 语句时,程序会 跳过当前循环,并忽略剩余的语句,然后 回到循环的顶端
  • 如果仍然满足循环条件,循环体内语句继续执行,否则退出循环

else

  • python 中的 while 语句也支持 else 子句
  • else 子句只在循环完成后执行
  • break 语句也会跳过 else 块
[root@python day02]# vim demo_while.py
#计算1-100之间所有整数的和
i=1
sum=0
while i<=100:
    if i==2:
    #退出循环 break
        break
    sum=sum+i
    i += 1
else:
    #当循环正常结束会执行
    #当循环没有正常结束不会执行
    print('else执行了')
print(sum)
[root@python day02]# python3 demo_while.py
1
[root@python day02]# vim demo_while.py
#计算1-100之间所有整数的和
i=1
sum=0
while i<=100:
    if i==2:
#跳过这一次循环,还需继续下一次循环
        i += 1
        #continue
    sum=sum+i
    i += 1
else:
    #当循环正常结束会执行
    #当循环没有正常结束不会执行
    print('else执行了')
print(sum)
[root@python day02]# python3 demo_while.py
else执行了
5048



练习 :猜数字程序
[root@python day02]# cat test04_while.py 
#系统随机生成 100 以内的整数
#要求用户猜生成的数字是多少
#最多猜 5 次,猜对结束程序
#如果5次全部猜错,则输出正确结果
import random
num = random.randint(1,100)
i=1
while i <= 5:
    cai =int(input('输入猜取的数字:'))
    if cai == num:
        break
    elif cai < num:
        print('猜小了')
    elif cai > num:
        print('猜大了')
    i += 1
else:
    print('随机数字:',num)
[root@python day02]# python3 test04_while.py
输入猜取的数字:56
猜大了
输入猜取的数字:23
猜小了
输入猜取的数字:43
猜小了
输入猜取的数字:47
猜大了
输入猜取的数字:45

for 循环详解

for 循环语法结构

for 变量 in 可迭代对象:
   for 循环逻辑

for 循环特性

break、continue、else

关键字作用
break结束当前循环
continue跳出当次循环,继续执行下次循环
else循环正常结束(非 break 退出),执行 else 逻辑
[root@python day02]# cat demo03_for.py 
cart = ['巧克力派','鱿鱼丝','碎冰冰','python入门到精通']
#for循环
for item in cart:
    print(item)
#列表中存放了多个商品的价格,计算出总价
price = [23,34,67,54,89,32]
sum=0
for item in price:
    sum=item+sum
print('总价:',sum)

#循环字符串,获取每个字符
str01 = 'hello world'
for item in str01:
    if item == ' ':
        continue
        #break
    print(item)
else:
    print('else ok')

range 函数

range 函数是一个内建函数,它的返回值是一个半闭半开范围内的整数。for 循环常与range函数一起使用,range 函数为循环提供条件。

[root@python day02]# cat demo04_range.py
#range() 范围
for item in range(1,11,2):
    print(item)
print('\n')

tmp1 = range(5)
for n in tmp1:
    print(n)
print('\n')

#转为一个列表
print(list(tmp1))
[root@python day02]# python3 demo04_range.py
1
3
5
7
9


0
1
2
3
4


[0, 1, 2, 3, 4]

练习:斐波那契数列

  1. 斐波那契数列就是某一个数,总是前两个数之和,比如 0,1,1,2,3,5,8
  2. 使用for循环和range函数编写一个程序,计算有10个数字的斐波那契数列
  3. 改进程序,要求用户输入一个数字,可以生成用户需要长度的斐波那契数列
[root@python day02]# cat test05_range.py
fib = [0,1]
for i in range(1,9):
    fib.append(fib[-1]+fib[-2])
print(fib)


[root@python day02]# python3 test05_range.py
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]

改进后程序:

[root@python day02]# cat test05_range.py
fib = [0,1]
length=int(input('请输入要生成的列表长度:'))
length=length-1
for i in range(1,length):
    fib.append(fib[-1]+fib[-2])
print(fib)


[root@python day02]# python3 test05_range.py
请输入要生成的列表长度:15
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377]
[root@python day02]# 

列表解析 (列表推导式)

它是一个非常有用、简单、灵活的工具,可以用来动态地创建列表,注意:它只是一个简写方式,不是新知识点

语法结构

[root@python day02]# cat demo05_list.py

list01 = []
for item in range(1,11):
    list01.append('hello'+ str(item))
print('输出列表list01:',list01)

list02 = ['hello' for item in range(1,11)]
print('输出列表list02:',list02)


[root@python day02]# python3 demo05_list.py
输出列表list01: ['hello1', 'hello2', 'hello3', 'hello4', 'hello5', 'hello6', 'hello7', 'hello8', 'hello9', 'hello10']
输出列表list02: ['hello', 'hello', 'hello', 'hello', 'hello', 'hello', 'hello', 'hello', 'hello', 'hello']
[root@python day02]# 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值