day3 循环

day3

1. if 相关补充
1) 多分支结构

语法:

if 条件语句:
	代码段1
elif 条件语句2:
	代码段2
elif 条件语句3:
	代码段3
...
else:
	代码段N

练习一:根据成绩划分等级

score = int(input('请输入成绩:'))
if score >= 90:
	print('A')
elif score >= 80:
	print('B')
elif score >= 60:
	print('C')
else:
	print('D')

练习二:划分班级,分数高于500进普通班,等级是A进入特长班

score = int(input('请输入分数:'))
grade = input('请输入等级:')
if score > 500:
	print('该学生进入普通班')
if grade == 'A':
	print('该学生进入特长班')

注:练习一不能按照练习二的方式来写,会浪费资源。写代码要尽量省资源。

练习三:定义变量保存一个人的身高体重,编程实现判断这个人的身材是否正常。 18.5 <= 体重(kg)/ 身高(m)的平方 <= 24.9

w = int(input('请输入体重:'))
h = float(input('请输入身高:'))
if w/h**2 < 18.5:
	print=('偏瘦')
elif w/h**2 <= 24.9:
	print=('正常')
else:
	print=('超重')
2) 嵌套

练习:判断一个数是否是偶数。如果是,打印偶数,否则打印奇数。同时判断这个数是否是4的倍数,如果是打印‘4的倍数’

num = int(input('请输入数字:'))
if num % 2 == 0:
	print('偶数', end=' ')
	if num % 4 == 0:
		print('4的倍数')
else:
	print('奇数')
2. for
1) 基本

语法:

for 变量 in 序列:
    循环体

说明:

  1. for in 是关键字,固定写法
  2. 变量就是变量名
  3. 序列:容器型数据类型的数据,例如:字符串、列表、字典、元祖、集合、迭代器、生成器、range等
  4. 循环体:和for保持一个缩进的一条或者多条语句,就是急需要重复执行的代码

执行过程:
让变量去序列中取值,一个一个的取,取完为止。每取一个值就执行一次循环体。(序列中元素的个数决定了循环的次数)

2) range函数

range(N) - 产生[0,N)的数字序列
range(M,N) - 产生[M,N)的数字序列,M < N。上面其实就是M默认为0
range(M,N,step) - 产生[M,N)的数字序列,每次数字增加step

练习:计算0-100中能被3整除的数的数量

方法一:

for count in range(0, 101):
	if count % 3 == 0:
		count += 1
print(count)

方法二:

for count in range(0, 101, 3):
	count += 1
print(count)

练习2:计算1-100中所有能被3整除但是不能被5整除的数的和

for count in range(1, 101):
	if count % 3 == 0 and count % 5 != 0:
	0 += count
print(count)
3. while

语法:

while 条件:
	循环体

说明:

  1. while:关键字,固定写法
  2. 条件语句:任何有结果的表达式
  3. 循环体:和while保持一个缩进的一条或者多条语句,就是需要重复执行的代码段

执行过程:
先判断条件语句是否为True,为True就执行循坏体,执行完再判断条件语句是否为True。为True就执行循环体。以此类推。直到判断条件语句的时候结尾为False,整个循环就结束。

练习:打印1-100

num = 1
whilt num < 101
	print(num)
	num += 1

for 循环和 while 循环的关系:
当循环次数不确定的时候使用 while,否则使用 for

练习一:验证密码,密码为abc

pw = (input('请输入密码:'))
while pw != abc:
	print('密码错误')
	pw = input('请再次输入密码:')
print('密码正确')

练习二:猜数字游戏

from random import randint
rn = randint(0, 99) # 在0-99期间生成随机整数
num = int(input('请输入数字(0-99):'))
times = 0
while num != rn:
	if num < rn:
		print('数字小于已产生的随机数')
	else:
		print('数字大于已产生的随机数')
	times += 1
	num = int(input('请重新输入数字(0-99):'))
if times <= 3:
	print('非常棒!')
elif times <= 10:
	print('不错不错!')
else:
	print('just soso')
4. keyword
1) break 和 continue

用法:
两者只能在循环体中使用
continue:结束一次循环(当执行循环体遇到continue,当次循环结束,直接进入下次循环的判断)
break:结束整个循环 (当执行循环体的时候遇到break,整个循环直接结束)

continue用法举例:

for x in range(0, 5):
	if x % 2:
		continue
	print(x)

输出结果:
0
2
4

break用法举例:

for x in range(5):
	print('xxx')
	break
	print('BBB')

输出结果:
xxx

使用while循环的套路:

wihle True:
	每次循环的事情
    if 循环结束的事件:
		break
2) else

python中完整的for和while循环后面都有else结构,else结构的存在不影响原循环的执行。
当循环是因为break而结束,那么循环后面else里面的代码不会执行。
当循环不是因为break结束,那么循环后面else里面的代码就会执行。

举例:

for x in range(5):
    print(x)
    break
else:
    print('a')

输出结果:
0

5. 作业
  • 基础题
  1. 根据输入的成绩的范围打印及格或者不及格
score = int(input('请输入成绩:'))
if score < 60:
    print('不及格')
else:
    print('及格')
  1. 根据输入的年纪范围打印成年或者未成年,如果年龄不在正常范围内(0~150)打印这不是人!
age = int(input('年龄:'))
if 0 <= age < 18:
    print('未成年')
elif age < 150:
    print("成年")
else:
    print('这不是人!')
  1. 输入两个整数a和b,若a-b的结果为奇数,则输出该结果,否则输出提示信息a-b的结果不是奇数
a = int(input('请输入整数a:'))
b = int(input('请输入整数b:'))
if (a-b) % 2 != 0:
    print(a-b)
else:
    print('a-b的结果不是奇数')
  1. 使用for和while循环输出 0~100内所有3的倍数。
for num in range(0, 101, 3):
    print(num)
num = 0
while num < 101:
    if num % 3 == 0:
        print(num)
        num += 3
  1. 使用for和while循环输出100~200内个位数或者十位数能被3整除的数。
for num in range(100, 201):
    if num % 10 % 3 == 0 or num // 10 % 10 % 3 == 0:
        print(num)
num = 100
while num < 201:
	if num % 10 % 3 == 0 or num // 10 % 10 % 3 == 0:
		print(num)
	num += 1
  • 进阶题
  1. 使用循环计算1*2*3*4*...*10的结果。
count = 1
for num in range(1, 11):
	count = num * count
print(count)
  1. 统计100以内个位数是2并且能够被3整除的数的个数。
for num in range(1,101):
    if num % 10 == 2 and num % 3 == 0:
        print(num)
  1. 输入任意一个正整数,求他是几位数?

    注意: 这儿不能使用字符串,只能用循环

count = 0
num = int(input('请输入任意一个正整数:'))
while num // 10 != 0:
	count += 1
print(count)

待续.......
		
上一篇:日更计划Day3 CSP-J2019第四题


下一篇:从零开始的Java再学习-DAY3