while循环和continue及break
while循环
语法:
while 条件语句:
循环体
说明:
while - 关键字;固定写法
条件语句 - 和if中的条件语句的要求一样
: - 固定写法
循环体 - 结构上,和while保持一个缩进的一条或多条语句;逻辑上,需要重复执行的代码
执行过程: 不断判断条件语句是否为True,如果是就执行循环体,否则循环就结束
示例:
x = 0
while x < 5:
print(x)
x += 1
# 练习1:打印1~100所有的整数
x = 1
while x <= 100:
print(x)
x += 1
# 练习2:打印100以内所有的偶数
x = 2
while x <= 100:
print(x)
x += 2
# 练习3:打印100,98.....,2,0
x = 100
while x >= 0:
print(x)
x -= 2
for循环和while循环的选择
关系:for能解决的问题,while循环都可以解决;while循环能解决的问题,for循环不一定可以解决
但是for循环比起while循环,控制次数更容易
建议:能用for循环解决的问题都用for,解决不了的才考虑while.
循环次数确定 - 使用for
循环次数不确定 - 只能使用while循环
示例:
# 练习:提示用户不断输入密码,直到输入正确
pw = '5500550'
pw1 = input('请输入密码:')
while pw1 != pw:
pw1 = input('密码错误请重新输入密码:')
print('登陆成功')
猜数字游戏
'''
系统随机产生一个0-100的随机数
用户不断输入数字,直到输入的数字和产生的数字相等,游戏结束
如果猜错了,给出打了或者小了的提示信息
'''
# python创建随机数
from random import randint
# x = randint(10,20) #产生一个10-20的随机数,并保存到x中
a = randint(1, 100)
b = 0
count = 0
while a != b and count <= 10:
b = int(input('请输入一个数字:'))
if b > a:
print('大了')
else:
print('小了')
count += 1
if count <= 10:
print('第', count, '次正确,游戏结束', sep='')
else:
print('次数用完游戏结束')
continue和break
continue和break都只能出现在循环体中
continue - 结束一次循环,每次在执行循环体的时候,如果遇到continue,那么这次循环结束,直接进入下一次循环
break - 结束整个循环,在执行循环体的时候,如果遇到break,那么整个循环直接结束,不会进入下次循环
示例:
for x in range(5):
print(x)
print('======')
continue
print('++++++')
x = 0
while x <= 10:
print(x)
if x % 2 == 0:
x += 3
continue
x += 1
for x in range(5):
if x % 2:
break
print(x)
while和break
while循环使用的通用格式:
while True:
需要重复执行的代码
if 循环结束的条件
break
示例:
pw = '123456'
while True:
pw1 = input('请输入密码')
if pw == pw1:
break
输入一个正整数,求他是几位数
num = int(input('请输入一个任意正整数:'))
s = 1
while True:
num //= 10
if num:
s += 1
else:
break
print(s, '位数')
else关键字
完整的循环结构
1.完整的for循环
for 变量 in 序列:
循环体
else:
代码段
2.完整的while循环
while 条件语句:
循环体
else:
代码段
else的作用:
else的存在不会影响原来循环的执行;
如果循环不是因为遇到break而结束的else后的代码段就会在循环结束后执行,否则不执行
练习:判断指定的数是否是素数
s = int(input('请输入一个数'))
for x in range(2, s):
if s % x == 0:
print(num, '不是素数')
break
else:
print('是素数')
s = int(input('请输入一个数'))
n = 2
while True:
if s % n != 0 and n < s:
n += 1
else:
print('是素数')
break
else:
print('不是素数')
第一周作业
一、选择题
-
下列变量名中不合法的是?(C)
A. abc
B. Npc
C. 1name
D ab_cd
-
下列选项中不属于关键字的是?(B)
A. and
B. print
C. True
D. in
-
下面哪个选项对应的代码写法是正确的?(C)
A.
print('Python') print('新手村')
B.
print('Python') print('新手村')
C.
print('Python') print('新手村')
D.
print('Python''新手村')
-
下面选项中能打印出50的是?B
A.
print('100 - 50')
B.
print(100 - 50)
-
关于引号,下面选项中使用正确的是?D
A.
print('hello)
B.
print("hello')
C.
print(“hello”)
D.
print("hello")
二、编程题
-
写代码在控制台打印
good good study, day day up!
print('good good study, day day up!')
-
写代码在控制台打印5次
you see see, one day day!
a = 'you see see, one day day!' print(a) print(a) print(a) print(a) print(a)
-
写代码打印数字 11、12、13、… 21
for i in range(11,22):
print(i)
i += 1
-
写代码打印数字 11,13,15,17,…99
for i in range(11,100): print(i) i += 2
-
写代码打印数字:10、9、8、7、6、5
x = 10 for i in range(1,6): print(x,end='、') x -= 1
-
写代码计算:1+2+3+4+…+20 的和
s = 0 for i in range(1,21): s += i print(s)
-
写代码计算100以内所有偶数的和
s = 0 for i in range(2,100,2): s += i print(s)
-
写代码统计100~200中个位数是3的数的个数
s = 0 for i in range(100,200): if i % 10 == 3: s += 1 print(s)
-
写代码计算
2*3*4*5*...*9
的结果s = 1 for i in range(2,10): s *= i print(s)
-
输入一个数,如果输入的数是偶数就打印
偶数
否则打印奇数
s = int(input('请输入一个数:')) if s % 2 != 0: print('奇数') else: print('偶数')
-
统计1000以内能被3整除但是不能被5整除的数的个数。
s = 0 for i in range(1,1000): if i % 3 == 0 and i % 5 != 0: s += 1 print(s)