重新学习python09

0. 下面的循环会打印多少次 "I Love FishC" ?
 

for i in range(0, 10, 2):
   print('I Love FishC')

5次;

1. 下面的循环会打印多少次 "I Love FishC" ?

 for i in 5:
    print('I Love FishC')


异常;

报错, 上节课的课后习题我们提到了 in 是“成员资格运算符”, 而不是像 C语言那样去使用 for 语法。 Python 的 for 更像脚本语言的 foreach.
 

2. 回顾一下 break 和 continue 在循环中起到的作用?
前者中断,后者跳过本次循环;

 

3. 请谈下你对列表的理解?
理解成数组即可,有很多内置函数;

 

4. 请问 range(10) 生成哪些数?

>>> range(10)
range(0, 10)
>>>
>>> print(range(10))
range(0, 10)
>>>

>>> list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>>


5. 目测以下程序会打印什么?
 

 while True:
    while True:
        break
        print(1)
    print(2)
    break
    print(3)

输出2;

 

while True:
    while True:
        break
        print(1)
    print(2)
    break
print(3)

输出2 3;

 

6. 什么情况下我们要使循环永远为真?
特定场景下,比如操作系统和服务器;

 

7. 【学会提高代码的效率】你的觉得以下代码效率方面怎样?有没有办法可以大幅度改进 (仍然使用 while) ?
 

 i = 0
 string = 'ILoveFishC.com'
 while i < len(string)):
   print(i)
   i += 1

将len(string) 放在循环体外面;

 

——————————————————


# 输入密码,只能有3次机会

#第一次想的时候格外简单,没想到边界条件~
"""
    if (passwd.find("*")):
        passwd = input("请再次输入密码: ")
    else :
        times += 1
        passwd = input("请再次输入密码: ")
"""


# 下面的代码算是比较完成了条件限制,但是不太理想,需要再优化一下;
Passwd = "123456789"
times = 0

while (times < 4) :
    InputPasswd = input("请输入密码: ")
    if (Passwd == InputPasswd) :
        print("牛逼,密码正确!")
        break
    elif ( "*" in InputPasswd) :
        print("密码不可以包含*号,重新输入!")
        continue
    else :
        print("密码输入有误,重新输入!")
    times += 1


#优化后的代码;
#优化之后的代码
"""
Passwd = "123456789"
times = 3

while times :
    InputPasswd = input("请输入密码: ")
    if (Passwd == InputPasswd) :
        print("牛逼,密码正确!")
        break
    elif ( "*" in InputPasswd) :
        print("密码不可以包含*号,重新输入!")
        print("仍然具有", times, "次机会!")
        continue
    else :
        print("密码输入有误,重新输入!")
        print("只剩下 " ,times - 1, "次机会!")
    times -= 1

"""

 

 

"""
while True:
    while True:
        break
        print(1)
    print(2)
    break
    print(3)

while True:
    while True:
        break
        print(1)
    print(2)
    break
print(3)
"""


"""
#对下列代码进行改进优化
i = 0
string = 'ILoveFishC.com'
while(i < len(string)):
	print(i)
	i += 1

# 优化过的代码
i = 0
string = 'ILoveFishC.com'
length = len(string)
while(i < length):
	print(i)
	i += 1

"""




# 输出密码,只能有3次机会
"""
    if (passwd.find("*")):
        passwd = input("请再次输入密码: ")
    else :
        times += 1
        passwd = input("请再次输入密码: ")
"""

"""
Passwd = "123456789"
times = 0

while (times < 4) :
    InputPasswd = input("请输入密码: ")
    if (Passwd == InputPasswd) :
        print("牛逼,密码正确!")
        break
    elif ( "*" in InputPasswd) :
        print("密码不可以包含*号,重新输入!")
        continue
    else :
        print("密码输入有误,重新输入!")
    times += 1
"""

#优化之后的代码
"""
Passwd = "123456789"
times = 3

while times :
    InputPasswd = input("请输入密码: ")
    if (Passwd == InputPasswd) :
        print("牛逼,密码正确!")
        break
    elif ( "*" in InputPasswd) :
        print("密码不可以包含*号,重新输入!")
        print("仍然具有", times, "次机会!")
        continue
    else :
        print("密码输入有误,重新输入!")
        print("只剩下 " ,times - 1, "次机会!")
    times -= 1

"""



# 水仙花树
"""
for i in range(100,1000):
    temp = i
    a = ( temp // 100 ) ** 3
    c = ( temp % 100 ) ** 3
    b = ( temp // 10 % 10 ) ** 3
    if ( i ==  (a + b +c )) :
        print(i)
#没看出来哪里有问题???
"""

"""
print(str([i for i in range(100,1000) if (i%10)**3+(i//10%10)**3+(i//100)**3 == i])[1:-1],end='')
"""

"""
for i in range(100,1000):
    if (i%10)**3+(i//10%10)**3+(i//100)**3 == i :
        print(i)
#根据上面运行成功的,进行分行改进 也没有得到输出的正确结果???
"""
"""
for i in range(100,1000):
    a=i//100
    b=(i%100)//10
    c=(i%100)%10
    if (i == a**3 + b**3 + c**3):
        print(i)
##此处在cmd中运行是正确ok的!
"""

"""
for i in range(100,1000):
    s = str(i)
    if int(s[0]) ** 3 + int(s[1]) ** 3 + int(s[2]) ** 3 == i :
        print(i)

##为什么此处输出结果与cmd中输出结果不同呢???

for i in range(100, 1000):
    sum = 0
    temp = i
    while temp:
        sum = sum + (temp%10) ** 3
        temp //= 10 # 注意这里要使用地板除哦 ~
    if sum == i:
        print(i)

"""



#从3个红色球,3个黄色球,6个绿色球中抓出8个球的颜色搭配
#数学模型:
red = 3
yellow = 3
green = 6
for x in range(0,4) :
    for y in range(0,4):
        for z in range(2,7):
            if(x+y+z==8):
                print(x," ",y," ",z," ")
                print("-----")

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值