Python-02条件语句、循环语句

条件语句、循环语句

学习参考文档:https://github.com/datawhalechina/team-learning-program/blob/master/Python-Language/03.%20%E6%9D%A1%E4%BB%B6%E8%AF%AD%E5%8F%A5.md
一、条件语句
1.if语句

if 1print("  ")

2.if - else语句

a=int(input('please input an interger'))
if a>80:
	print('A')
else:
	print('B')

3.if - elif - else

if a>80:
	print('A')
elif a>70:
	print('B')
elif a>60:
	print('C')
else:
	print('D')

4.assert关键词
assert这个关键词我们称之为“断言”,当这个关键词后边的条件为 False 时,程序自动崩溃并抛出AssertionError的异常。

a=0
assert a!=0
#AssertionError

进行单元测试时,可以用来在程序中置入检查点,只有条件为 True 才能让程序正常工作。

二、循环语句
1.while循环
while循环的代码块会一直循环执行,直到布尔表达式的值为布尔假。

while Trueprint('A')
string='abcd'
while string:
	string=string[1:]
	

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

3.for循环
序列迭代器,遍历任何有序序列

for i in ['a','b','c','d']:
	print(i,end=' ')
dict={'a':1,'b':2,'c':3}
for key in dict.keys():
	print(key,end='  ')
for value in dict.values():
	print(value)	

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

for num in range(2,10):
	for i in range(2,num):
		if num%i==0:
			j=num/i
			print('%d等于%d*%d'%(num,i,j))
			break
	else:
		print(num,'是一个质数')

5.range()函数

range([start,] stop[, step=1])
step默认为1

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

6.enumerate()函数

enumerate(sequence, [start=0])
  • sequence – 一个序列、迭代器或其他支持迭代对象。
  • start – 下标起始位置。
  • 返回 enumerate(枚举) 对象
A=['a','b','c']
for i, k in enumerate(A,1):
    print(i,k,sep='&')

7.break语句
break语句可以跳出当前所在层的循环。
8.continue语句
continue终止本轮循环并开始下一轮循环。

9.pass语句
pass 语句的意思是“不做任何事”,如果你在需要有语句的地方不写任何语句,那么解释器会提示出错,而 pass 语句就是用来解决这些问题的。
pass空语句

10.推导式
列表推导式

a = [(i, j) for i in range(0, 3) if i < 1 for j in range(0, 3) if j > 1]
print(a)

# [(0, 2)]

元组推导式

a = (x for x in range(10))
print(a)
# <generator object <genexpr> at 0x0000025BE511CC48>
print(tuple(a))
# (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)

字典推导式

b = {i: i % 2 == 0 for i in range(10) if i % 3 == 0}
print(b)
# {0: True, 3: False, 6: True, 9: False}

集合推导式

c = {i for i in [1, 2, 3, 4, 5, 5, 6, 4, 3, 2, 1]}
print(c)
# {1, 2, 3, 4, 5, 6}

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

for i in range(1500,2700):
	if (i%7==0)&(i%5==0):
		print(i,end=' ')
else:
	print('查找完毕')

2.龟兔赛跑游戏

v1,v2,t,s,l=map(int,input().split())
'''
v1 兔子的速度
v2 乌龟的速度
t 兔子领先t米
s 兔子休息s秒
l 总路程
'''
l1=0 # 兔子走的路程
l2=0 # 乌龟路程
l1t=0 # 兔子时间
l2t=0 # 乌龟时间
while True:
    if l1-l2>=t:
        l2=s*v2
        l1t+=s
        l2t+=s
    dt1=l1t+(l-l1)/v1 # 兔子走到终点所需时间
    dt2=l2t+(l-l2)/v2 # 乌龟走到终点所需时间
    l1+=v1
    l2+=v2
    l1t+=1
    l2t+=1
    if l1>=l or l2>=l:
        if dt1>dt2:
            print('T')
            print(dt2)
            break
        elif dt1==dt2:
            print('D')
            print(dt2)
            break
        else:
            print('R')
            print(dt1)
            break
    
        

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值