Task 2: 条件循环结构(1天)

目录

一、条件循环

1.if 语句

2.if-else 语句

3.if-elif-else 语句

4.assert 关键字

二、循环语句

1.while 循环

2.while -else 循环

3.for 循环

4.for -else 循环

5.range()函数

6.enumerate() 函数

7.break 语句

8.continue 语句

9.pass 语句

10.推导式

11.综合例子

 

正文

一、条件循环中

if之前有仔细研究过,今天就不赘述了

主要说一下elif 和esle 的区别,elif有条件表达式,二esle没有

#elif 和else 的区别是elif有条件表达式,另外一个没有   
age=3
if age>=18:
    print('adult')
elif age>6:
    print('teenager')
else:
    print('kid')


#else   
age=int(input('age:'))
if age>=18:
    print('adult')
else:
    print('not adult')

主要记录一下没有接触过的assert

assert 关键字

用法如下

assert +条件表达式

当条件表达式为真时,才能让程序正常进行,但条件为假时,抛出AssertionError

#assert 
assert 2>3

assert 3>2

 

 

二、循环语句

1.while循环

while 布尔表达式:
    代码块

代码会一直循环执行下去,直到布尔表达式的值为假

n=10 
i=0
while i <n:
    print(i)
    i=i+1

 

如果布尔表达式不带有<、>、==、!=、in、not in等运算符,仅仅给出数值之类的条件,也是可以的

while后写入一个非零整数时,视为真值,执行循环体;写入0时,视为假值,不执行循环体

也可以写入str、list或任何序列,长度非零则视为真值,执行循环体;否则视为假值,不执行循环体

#死循环了,最好不要写这样的死循环
while 1:
    print('hi')
    
    
#list
l=list('abc')
while l:
    print(l)
    l=l[1:]  #除了位置为0的不要,其他都要

 

2.while-else 循环

while 布尔表达式:
    代码块
else:
    代码块   

当布尔表达时为真是,循环执行while的代码块,但是当布尔表达式为假时,则执行else的代码块

count = 0
while count < 5:
    print("%d is  less than 5" % count)
    count = count + 1
else:
    print("%d is not less than 5" % count)

 

3.for 循环

在工作中,主要用于可迭代对象的遍历

for 迭代变量 in 可迭代对象:
    代码块

list 的遍历

#list 的迭代
l=list('abcdefg')   
for i in l:
    print(i)

#位置和值
for i ,j in enumerate(l):
    print((i,j))
    

#len和range
for i in range(len(l)):
    print(l[i])    

dict的遍历

#dict的迭代
dic = {'a': 1, 'b': 2, 'c': 3, 'd': 4}

#value的遍历
for i in dic.values():
    
    print(i,end=' ')

#key的遍历
for i in dic.keys():
    print(i,end=' ')
    
#key 和value 的遍历
for i ,j in dic.items():
    print(i,j,sep=':',end=' ')

当然string也可以迭代

#string    
a='hello,python'
for i in a:
    print(i,end=' ')

 

4.for -else 循环

for循环正常执行完的情况下,执行else输出,如果for循环中执行了跳出循环的语句,比如 break,将不执行else代码块的内容,与while - else语句一样

for 迭代变量 in 可迭代对象:
    代码块
else:
    代码块
for num in range(10, 20):  # 迭代 10 到 20 之间的数字
    for i in range(2, num):  # 根据因子迭代
        if num % i == 0:  # 确定第一个因子
            j = num / i  # 计算第二个因子
            print('%d 等于 %d * %d' % (num, i, j))
            break  # 跳出当前循环
    else:  # 循环的 else 部分
        print(num, '是一个质数')

 

 

5.range()函数

一般用于生产一个数字序列

range([start,] stop, [step=1])

start 和step这两个参数可以不输入,如果只输入stop值,那么将会生产一个从0到stop-1的的序列

list(range(10))  #[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
list(range(1,10))  #[1, 2, 3, 4, 5, 6, 7, 8, 9]
list(range(1,10,2))  #[1, 3, 5, 7, 9]

#0 1 2 3 4 5 6 7 8 9 
for i in range(10):
    print(i,end=' ')

 

6.enumerate()函数

enumerate(sequence, [start=0])   #start参数可以不输入

sequence -- 一个序列、迭代器或其他支持迭代对象。

start -- 下标起始位置。

返回 enumerate(枚举) 对象

 我一般用于list迭代时,位置和value的输出

#位置和值
l=list('abcdefg')   
for i ,j in enumerate(l):
    print((i,j),end=' ')
    
#(0, 'a') (1, 'b') (2, 'c') (3, 'd') (4, 'e') (5, 'f') (6, 'g') 
    

还可以直接使用

list(enumerate(l))
# [(0, 'a'), (1, 'b'), (2, 'c'), (3, 'd'), (4, 'e'), (5, 'f'), (6, 'g')]

 

7.break 语句

break 语句可以跳出当前所在层的循环

import random
secret = random.randint(1, 10) #[1,10]之间的随机数

while True:
    temp = input("不妨猜一下小哥哥现在心里想的是那个数字:")
    guess = int(temp)
    if guess > secret:
        print("大了,大了")
    else:
        if guess == secret:
            print("你这样懂小哥哥的心思啊?")
            print("哼,猜对也没有奖励!")
            break
        else:
            print("小了,小了")
print("游戏结束,不玩儿啦!")

 

8.continue 语句

终止本轮循环并开始下一轮循还

#首先是0,然后就结束了if本轮的循环,直接到0+2,并输出2,再到1,1可以不可以整除2,于是输出1,然后到2,2可以整除,就直接到2+2,然后到3,,,,
for i in range(10):
    if i % 2 != 0:
        print(i)
        continue
    i += 2
    print(i)

 

 

 9.pass 

主要用于定义函数时,暂时不知道要函数要做什么用,但是又得然程序正常运行下去,就是要pass先占住位置

def f():
    pass

 

10.推导式

应该叫列表生成器吧

 

练习题

1.编写一个Python程序来查找那些既可以被7整除又可以被5整除的数字,介于1500和2700之间

l=[]
for i in range(1500,2701):
    if i%5==0 and i%7==0:
        l.append(i)
        
l

2.

 

posted on 2020-07-23 22:25  小小喽啰  阅读(230)  评论(0编辑  收藏  举报