目录
目录
第一周:
题目1:
小欧拿一百块钱,一只公鸡5块钱,一只母鸡3块钱,三只小鸡1元钱。买一百只,问公鸡、母鸡、小鸡各多少只,请用列表推导式解决!
思路:买一百只鸡,即公鸡,母鸡,小鸡的总数为100只;一百块钱,即公鸡,母鸡,小鸡花的钱总数为100。
代码实现:
for a in range(0, 101):
for b in range(0, 101):
for c in range(0, 101):
if 5 * a + 3 * b + c == 100:
if a + b + 3*c == 100:
print("公鸡有%d只,母鸡有%d只,小鸡有%d只" % (a, b, 3*c))
else:
pass
else:
pass
运行结果如下图:
题目2:
有如下值集合[11,22,33,44,55,66,77,88,99,90], 将所有大于66的值保存至字典的第一个key中,将小于66值保存至第二个key的值中。
如下图所示:
思路:创建两个空的数组,用if语句将大于66的存入第一个数组内,剩下的放入第二个数组,然后再将他们存入字典中。
代码实现:
a = [11, 22, 33, 44, 55, 66, 77, 88, 99, 90]
b = []
c = []
for d in a:
if d < 66:
b.append(d)
elif d > 66:
c.append(d)
else:
pass
e = {'k1': b, 'k2': c}
print(e)
运行结果如下图:
题目3:
使用lambda函数对1~1000进行求和
思路:用lambda表达式求1~1000的和,即使用等差数列前n项和的表达式,然后将首项尾项公差写入即可。
代码实现:
c = lambda a1, an, n: n*(a1+an)/2
print(c(1, 1000, 1000))
c中的参数即对应lambda表达式里面的未知数。
运行结果如下图:
题目4:
请你把下图的抽奖过程用程序实现并且封装成一个的函数。
思路:
首先使用time模块实现延迟输出,即在开头输入import time,最后在要延迟输出的语句后输入time.sleep(1),即延迟1秒输出。最后到抽奖环节,抽奖就要用到random模块创建随机函数,即在开头输入import random,random.randrange(0, 10)即随机输出0到9的数,不包括10 。
代码实现:
mport time
import random
a = input("请输入你的简称")
print("开奖倒计时3")
time.sleep(1)
print("开奖倒计时2")
time.sleep(1)
print("开奖倒计时1")
time.sleep(1)
print(" __\n >(’ )\n )/\n /( \n / `----/ \n \ ~=- /\n ~^~^~^~^~^~^~^")
time.sleep(1)
b = random.randrange(0, 10000000000000000000000000000)
if b == 0:
print("很遗憾,你没中奖。")
else:
print("恭喜%s中奖!" % a)
运行结果如下图:
题目5:
和电脑玩一个剪刀石头布的游戏:电脑随机出拳,我们可选择出什么。(电脑随机出、用户手动输入且要判断输入是否合法)封装为一个函数
思路:随机出拳,可以把0代表石头,1代表剪刀,2代表布,然后机器人在0到2之间随机出一个数。
代码实现:
import random
a = input("请出拳:(石头、剪刀、布)")
b = random.randrange(0, 3)
if a == "剪刀" or a == "石头" or a == "布":
print("----战斗过程----")
if b == 0:
print("电脑出了:石头")
elif b == 1:
print("电脑出了:剪刀")
elif b == 2:
print("电脑出了:布")
print("你出了:", a)
# 0是石头,1是剪刀,2是布。
print("----结果----")
if a == "石头" and b == 0:
print("平局!")
elif a == "石头" and b == 1:
print("你赢了!")
elif a == "石头" and b == 2:
print("你输了!")
elif a == "剪刀" and b == 0:
print("你输了!")
elif a == "剪刀" and b == 1:
print("平局!")
elif a == "剪刀" and b == 2:
print("你赢了!")
elif a == "布" and b == 0:
print("你赢了!")
elif a == "布" and b == 1:
print("你输了!")
elif a == "布" and b == 2:
print("平局!")
else:
print("请输入正确的字")
运行结果如下图:
第二周:
题目6:
小明、小红、小刚是同班同学,且坐在同一排,分别坐在第一位、第二位、第三位。
由于他们的身高都差不多,所以,老师计划让他们三个轮流坐在第一位。
每次换座位的时候,第一位变第三位,后面两位都往前一位
思路:每次换位置的时候将第一位的变成第三位。
代码实现:
a = ["小明", "小红", "小刚"]
i = 1
for i in range(0, 1000000):
i += 1
[a[0], a[1], a[2]] = [a[1], a[2], a[0]]
print(a)
input("按回车键继续:")
运行结果如下图:
题目7:
i.系统里面有多个用户,用户的信息目前保存在列表里面,账号密码一一对应
users = ['root','westos']
passwd = ['123','456']
ii.用户登陆(判断用户登陆是否成功)
1).判断用户是否存在
2).如果存在
1).判断用户密码是否正确
如果正确,登陆成功,推出循环
如果密码不正确,重新登陆,总共有三次机会登陆
3).如果用户不存在
重新登陆,总共有三次机会
思路:
账号密码一一对应,即可用if语句判断输入的账号是否对应所属的密码,每次都会用掉一次机会。
代码实现如下:
users = ['root', 'westos']
passwd = ['123', '456']
i = 1
while i < 4:
a = input("请输入您的账号:")
if a == users[0]:
b = input("请输入您的密码:")
if b == passwd[0]:
print("登录成功!")
break
else:
i += 1
elif a == users[1]:
b = input("请输入您的密码:")
if b == passwd[1]:
print("登录成功!")
break
else:
i += 1
else:
i += 1
运行结果如下图:</