一、实验目的
1. 理解条件表达式与True/False的等价关系
2. 熟练运用常见选择结构
3. 熟练运用for循环和while循环
4. 理解带else子句的循环结构执行过程
5. 理解break和continue语句在循环中的作用
二、实验内容和实验结果
1. 编写程序,计算小于1000的所有整数中能够同时被5和7整除的最大整数。
for i in range(999, -1, -1):
if i % 5 == 0:
if i % 7 == 0:
print("小于1000的所有整数中能够同时被5和7整除的最大整数为:", i)
break
2. 编写程序,计算1+2+。。。+100的和。
total = 0
for i in range(101):
total += i
print("1+2+。。。+100 = ", total)
3. 编写程序输出100以内的素数。
import math
print("100以内的素数包括:")
for i in range(2, 100):
limit = int(math.sqrt(i))
for j in range(2, limit + 2):
if j == limit + 1:
print(i, end=" ")
if i % j == 0:
break
4. 编写程序,实现抓狐狸游戏。假设墙上有5个洞(编号分别为0、1、2、3、4),其中一个洞里有狐狸,人类玩家输入洞口编号,如果洞里有狐狸就抓到了;如果洞里没有狐狸就第二天再来抓。但在第二天人类玩家来抓之前,狐狸会跳到隔壁的洞里。
import random
choose = int(input("请选择抓狐狸的洞口编号:"))
pos = random.randint(0, 4)
while choose != pos:
print("未抓到狐狸,狐狸在{}号洞口".format(pos))
choose = int(input("请重新选择洞口编号:"))
if pos == 0:
pos += 1
elif pos == 4:
pos -= 1
else:
pos += random.sample([1, -1], 1)[0]
print("恭喜你,你在{}号洞口抓到了狐狸".format(pos))
5. 小明单位发了100元的购物卡,小明到超市买三类洗化用品,洗发水(15元),香皂(2元),牙刷(5元)。要把100元正好花掉,可有哪些购买结合?
print("可能的购买组合有:")
flag = 0
for i in range(7):
for j in range(51):
for k in range(21):
if i*15 + j*2 + k*5 == 100:
flag += 1
print("{:2}瓶洗发水,{:2}盒香皂,{:2}支牙刷".format(i, j, k), end=" ")
if flag % 4 == 0:
print("")
6. 求两个数的最大公约数和最小公倍数。(提示:公约数一定小于等于两数中的小的那个数,且能同时被两个数整除;公倍数一定大于等于两数中的大数,且是大数的倍数又能被两数中的小数整除)
def GCD(a, b):
while a % b != 0:
temp = b
b = a % b
a = temp
return b
num = input("请输入两个整数(空格分隔):")
a, b = (eval(i) for i in num.split(" "))
gcd = GCD(a, b)
lcm = a * b // gcd
print("{}和{}的最大公约数为{},最小公倍数为{}".format(a, b, gcd, lcm))
7. 编写程序,求1!+3!+5!+7!+9!。
total = 0
for i in range(1, 10, 2):
mul = 1
for j in range(1, i+1):
mul *= j
total += mul
print("1!+3!+5!+7!+9! =", total)
8. 编写程序,让用户输入一个整数,如果输入的是正数就输出1,如果输入的是负数就输出-1,否则输出0。
num = int(input("请输入一个整数:"))
if num > 0:
print(1)
elif num < 0:
print(-1)
else:
print(0)
9. 输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
string = input("请输入一行字符:")
letter = digit = space = other = 0
for char in string:
if char.isalpha():
letter += 1
elif char.isalnum():
digit += 1
elif char.isspace():
space += 1
else:
other += 1
print("字符串中有{}个字母,{}个数字,{}个空格,{}个其他字"
"符".format(letter, digit, space, other))
10. 某百货公司为了促销,采用购物打折的办法。1000元以上者,按九五折优惠;2000元以上者,按九折优惠;3000元以上者,按八五折优惠;5000元以上者,按八折优惠。编写程序,输入购物款数,计算并输出优惠价。
price = eval(input("请输入购物款数:"))
if price >= 5000:
preferencial_price = price * 0.8
elif price >= 3000:
preferencial_price = price * 0.85
elif price >= 2000:
preferencial_price = price * 0.9
elif price >= 1000:
preferencial_price = price * 0.95
else:
preferencial_price = price
print("最终价格为:", preferencial_price)
三、实验小结
本次实验中的大部分内容相对简单,题目类型在其他计算机语言的学习中也较为常见。对于新手学习python编程,这是一些不错的题型,同时有其他语言编程基础的人也能较为方便地区分与之前所学语言的区别。