四、for循环练习#

1. 水仙花数#

1
2
3
题目:
打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。
例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。

分析:

1
2
1.所有的三位数
2.百位 十位个位  立方和

代码

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
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
题目:有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?

分析:

个位、十位、百位分别从1到4 两两不相等即可

代码:

1
2
3
4
5
6
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循环也一样

格式:

1
2
3
4
for 变量 in 容器:
    循环体代码
else:
    没有通过break退出循环,循环结束后,会执行的代码

for else

1
2
3
4
5
6
str = 'hello world'

for ele in str:
    print(ele)
else:
    print('执行了else语句')

会执行else中的代码

for else中执行了continue

1
2
3
4
5
6
for ele in str:
    if ele == 'l':
        continue
    print(ele)
else:
    print('执行了else语句')

continue不会影响else的执行

for else中执行了break

1
2
3
4
5
6
for ele in str:
    if ele == 'l':
        break
    print(ele)
else:
    print('执行了else语句')

如果执行了break,则else中代码就不会再执行了

4. 密码合法判断练习#

1
2
3
4
5
需求:
判断登录密码'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,密码合法就不会执行