四、for循环练习
1. 水仙花数
| 题目:
打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。
例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
|
分析:
代码
| for ele in range(100,1000):
# 百位
hun = ele//100
# 十位
ten = ele%100//10
# 个位
single = ele%10
# 判断立方和
if (hun**3+ten**3+single**3)==ele:
print(ele)
|
2. 数字组合
| 题目:有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?
|
分析:
个位、十位、百位分别从1到4 两两不相等即可
代码:
| for hun in range(1,5):
for ten in range(1,5):
for single in range(1,5):
if (hun!=ten) and (ten!=single) and (single!=hun):
num = hun*100+ten*10+single
print(num)
|
3. 循环结合else
循环也可以像if语句一样结合else
else 中的语句会在循环正常执行完(即 不是通过 break 跳出而中断的)的情况下执行,while循环也一样
格式:
| for 变量 in 容器:
循环体代码
else:
没有通过break退出循环,循环结束后,会执行的代码
|
for else
| str = 'hello world'
for ele in str:
print(ele)
else:
print('执行了else语句')
|
会执行else中的代码
for else中执行了continue
| for ele in str:
if ele == 'l':
continue
print(ele)
else:
print('执行了else语句')
|
continue不会影响else的执行
for else中执行了break
| for ele in str:
if ele == 'l':
break
print(ele)
else:
print('执行了else语句')
|
如果执行了break,则else中代码就不会再执行了
4. 密码合法判断练习
| 需求:
判断登录密码'hhew2383dW_fkf&E@^'是否合法
要求:
1. 密码必须是数字、字母(大小写都可以)、和下划线,否则不合法
2. 如果密码合法,就输出'密码合法,可以登录'
|
代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 | str = 'hhew2383dW_fkfE'
# 1.for循环遍历密码中每一个元素
# 2.定义容器:保存所有的数字 字母 _
# str range
container = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_'
for ele in str:
# 2.判断每一个元素是否合法
# 每一个元素 是否在容器中 @
if ele in container:
# 当前元素合法
pass
else:
print('密码不合法')
break
else:
print('密码合法')
|
如果执行了break,就不会再执行else,密码合法就不会执行