day 4 - while循环和循环关键字
1 . while 循环
"""
语法:
while 条件语句:
循环体
说明:
while - 关键字;固定写法
条件语句 - 和if中的条件语句一样,可以是任何有结果的表达式
例如:具体数据、已经赋值过的变量、有结果的某种运算的运算表达式等
: - 固定写法
循环体 - 结构上,和while保持一个缩进的一条或者多条语句;
逻辑上,需要重复执行的代码
"""
练习1:打印1-100所有的整数
x = 1
while x <= 100:
print(x)
x += 1
练习2:打印1-100所有的偶数:2,4,6,8…100
x = 2
while x <= 100:
print(x)
x +=2
2 . for循环和while循环的选择
关系:for循环能解决的问题,while循环都可以解决;while循环能解决的问题,for循环
不一定能解决,凡是for循环比起while循环,控制次数更容易
使用建议:能用for循环解决的问题都用for,解决不了的才考虑while。
循环次数确定 - 使用for
循环次数不确定 - 只能使用while
练习1:提示用户不断输入密码,知道输入正确为止
pw = '123'
i_pw = input('请输入密码:')
while pw != i_pw:
i_pw = input('密码错误,请重新输入密码:')
练习2:猜数字游戏 —— 系统随机产生一个0-100的随机数,用户不断输入数字,
知道输入的数字和随机产生的数字相等,游戏结束,如果猜错了,给出大了或者
小了的提示信息
from random import randint
num = randint(0,100)
num1 = -1
while num != num1:
num1 = int(input('请输入一个范围内的整数:'))
if num1 > num:
print('大了,再小点儿!')
elif num1 < num:
print('小了,再大点儿!')
print('恭喜你,猜对了!')
4 . 循环关键字
1 . continue 和 break
continue和break都只能出现在循环体中。
continue - 结束一次循环,每次执行循环体的时候,如果遇到continue,直接进入下一次循环
break - 结束整个循环,在执行循环体的时候,如果遇到了break,那么整个循环直接结束,
不会进入下一次循环
for x in range(5):
print(x)
print('====')
continue # 遇到continue,直接进入下一次循环
print('++++')
x = 0
while x <= 10:
print(x)
if x % 2 == 0:
x += 3in
continue
x += 1 # 0,3,4,7,8
"""
x = 0
x = 0 -> x <= 10 ->print(0) -> if 0 % 2 == 0 -> if True -> x += 3 ->continue
x = 3 -> x <= 10 ->print(3) -> if 3 % 2 == 1 ->if False -> x +=1
x = 4 -> x <= 10 ->print(4) -> if 4 % 2 == 0 ->if True -> x += 3 -> continue
x = 7 -> x <= 10 ->print(7) -> if 7 % 2 == 1 ->if False -> x += 1
x = 8 -> x <= 10 ->print(8) -> if 8 % 2 == 0 -> if True -> x += 3 ->continue
x = 11 -> x > 10 -> False - > 循环结束
"""
2 . while 和 break
while循环使用的通用格式:
while True:
需要重复执行的代码
if 循环结束的条件
break
练习1:输入任意一个正整数,求他是几位数
num = int(input('请输入一个任意正整数:'))
count = 0
while True:
num //= 10
count += 1
if num == 0:
break
print(count)
3 . 循环else
"""
完整的循环结构:
1)完整的for循环
for 变量 in 序列:
循环体
else:
代码段
2)完整的while循环
while 条件语句:
循环体
else:
代码段
else的作用:
else的存在不会影响原来循环的执行;
如果循环不是因为遇到break而结束的,else后面的代码段就会在循环结束后执行
"""
练习:判断指定的数是否是素数
num = 19
for x in range(2,num):
if num % x == 0:
print(num,'不是素数!')
break
else:
print(num,'是素数!')
第一周作业
1 . 选择题
-
下列变量名中不合法的是?(C)
A. abc
B. Npc
C. 1name
D ab_cd
-
下列选项中不属于关键字的是?(D)
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")
2 . 编程题
-
写代码在控制台打印
good good study, day day up!
print('good good study, day day up!')
-
写代码在控制台打印5次
you see see, one day day!
for x in range(5): print('you see see, one day day!')
-
写代码打印数字 11、12、13、… 21
for x in range(11,22): print(x)
-
写代码打印数字 11,13,15,17,…99
for x in range(11,100,2): print(x)
-
写代码打印数字:10、9、8、7、6、5
x = 10 while 5 <= x <= 10: print(x) x -= 1
-
写代码计算:1+2+3+4+…+20 的和
s = 0 for x in range(1,21): s += x print(s)
-
写代码计算100以内所有偶数的和
s = 0 for x in range(0,100,2): s += x print(s)
-
写代码统计100~200中个位数是3的数的个数
count = 0 for x in range(100,201): if x % 10 == 3: count += 1 print(count)
-
写代码计算
2*3*4*5*...*9
的结果product = 2 for x in range(3,10): product *= x print(product)
-
输入一个数,如果输入的数是偶数就打印
偶数
否则打印奇数
x = int(input('请输入一个数字:')) if x % 2: print('奇数') else: print('偶数')
-
统计1000以内能被3整除但是不能被5整除的数的个数。
count = 0 for x in range(0,1000,3): if x % 5 != 0: count += 1 print(count)