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("-----")