1.下面的循环会打印多少次"I love Python"
for i in range(0, 10, 2):
print('I love Python')
range(start, stop[, step])
1.start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
2.stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
3.step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
2.下面的循环会打印多少次"I love Python"
for i in 5:
print('I love Python')
上述程序会报错, in 是“成员资格运算符”,而不是像 C 语言那样去使用 for 语法。如要循环打印五次应该写成:
for i in range(5):
print('I love Python')
3.写一个程序,输入一个字符串,判断该字符串中是否存在字符‘p’

参考程序:
a = input("请输入一个字符串:")
res = False
for s in a:
if s == 'p':
res = True
break
print("存在") if res else print("不存在")
参考程序最后一行代码为python中的三目运算符,相当于C语言中的a?b:c,if后面的语句为判断条件,如果成立就执行if前面的语句,若为假则执行else后面的语句。
4.请问 range(10) 生成哪些数?range(5,10)呢?
同第一题1题
可以用print(list(range(10)))进行打印,结果为
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
用print(list(range(5,10)))进行打印,结果为
[5, 6, 7, 8, 9]
5.目测以下程序会打印什么?
while True:
while True:
break
print(1)
print(2)
break
print(3)
结果为:
2
3
因为 break 只能跳出最内层的一层循环
6.你的觉得以下代码效率方面怎样?有没有办法可以大幅度改进(仍然使用while)?
i = 0
string = 'ILoveFishC.com'
while i < len(string)):
print(i)
i += 1
这段代码之所以“效率比较低”是因为每次循环都需要调用一次 len() 函数,该函数每次循环都会重新计算该字符串的长度,但该字符串的长度其实只需要计算一遍就可以了(小甲鱼解释:就像你打游戏打得正HIGH的时候,老妈让你去买盐…你有两种选择,一次买一包,一天去买五次,或者一次性买五包回来,老妈要就直接给她。)
参考答案(将字符串长度计算出来后赋值给一个变量进行保存):
i = 0
string = 'ILoveFishC.com'
length = len(string)
while i < length:
print(i)
i += 1
7.设计一个验证用户密码程序,用户只有三次机会输入错误,不过如果用户输入的内容中包含"*"则不计算在内。
参考程序:
count = 3
password = 'FishC.com'
while count:
passwd = input('请输入密码:')
if passwd == password:
print('密码正确,进入程序......')
break
elif '*' in passwd:
print('密码中不能含有"*"号!您还有', count, '次机会!', end=' ')
continue
else:
print('密码输入错误!您还有', count-1, '次机会!', end=' ')
count -= 1
8. 编写一个程序,求 100~999 之间的所有水仙花数。
如果一个 3 位数等于其各位数字的立方和,则称这个数为水仙花数。例如:153 = 1^3 + 5^3 + 3^3,因此 153 就是一个水仙花数。
参考程序:
for i in range(100, 1000):
sum = 0
temp = i
while temp:
sum = sum + (temp%10) ** 3
temp //= 10 # 注意这里要使用地板除哦~
if sum == i:
print(i)
//称为地板除,两个整数的除法仍然是整数,它总是会舍去小数部分,返回数字序列中比真正的商小的,最接近的数字。简单来说就是求商。
9. 编写一个程序,解决三色球问题
有红、黄、蓝三种颜色的球,其中红球 3 个,黄球 3 个,绿球 6 个。先将这 12 个球混合放在一个盒子中,从中任意摸出 8 个球,编程计算摸出球的各种颜色搭配。
参考程序:
print('red\tyellow\tgreen')
for red in range(0, 4):
for yellow in range(0, 4):
for green in range(2, 7):
if red + yellow + green == 8:
# 注意,下边不是字符串拼接,因此不用“+”哦~
print(red, '\t', yellow, '\t', green)
10. 编写一个程序,它将找到所有这些数字,可被7整除,但不是5的倍数,2000年至3200年(包括在内)。得到的数字应按逗号分隔的顺序打印在一行上。
参考程序:
l=[]
for i in range(2000, 3201):
if (i%7==0) and (i%5!=0):
l.append(str(i))
print (','.join(l))