这些题是我断断续续,断了好几天,快半个月写的吧,,因为每天就学一个半小时Python
写一道看一道题的答案
1.有两个列表
l1=[11,22,33]
l2=[22,33,44]
a.获取内容相同的元素列表
我写的
l1 = [11, 22, 33]
l2= [22, 33, 44]
l3=[]for i inl1:if i inl2:
l3.append(i)print(l3)
b.获取l1中有,l2中没有的元素列表
我写的
l1 = [11, 22, 33]
l2= [22, 33, 44]
l3=[]for i inl1:if i inl2:pass
else:
l3.append(i)print(l3)
老师写的
l1 = [11, 22, 33]
l2= [22, 33, 44]
l3=[]for i inl1:if i not inl2:
l3.append(i)print(l3)
c.获取l1和l2中内容都不同的元素
我写的
l1 = [11, 22, 33]
l2= [22, 33, 44]
l3=[]for i inl1:if i inl2:pass
else:
l3.append(i)for i inl2:if i inl1:pass
else:
l3.append(i)print(l3)
2.有1,2,3,4,5,6,7,8 八个数字,能组成多少个互不相同且无重复数字的两位数?
我写的
li = [1, 2, 3, 4, 5, 6, 7, 8]
v = 0
for i1 in li:
for i2 in li:
v = v+1
if i1 == i2:
v = v-1
print(v)
老师写的
v =0for i1 in range(1, 9):for i2 in range(1, 9):if i1 !=i2:
v= v+1
print(v)
3.输出一份九九乘法表
我写的
v =0for i1 in range(1, 10):for i2 in range(1, 10):if i1 <=i2:
v= i1*i2print(str(i1)+"*"+str(i2)+"="+str(v))
不会换行
老师写的
for i1 in range(1, 10):
string= ""
for i2 in range(1, i1+1):
string= string + str(i1)+"*"+str(i2)+"="+str(i1*i2)+"\t"
print(string)
老师写的第二种方法
for i1 in range(1, 10):for i2 in range(1, i1+1):print(str(i1)+"*"+str(i2)+"="+str(i1*i2)+"\t", end="") #后面的end=""可以让print不换行 表示可以让输出的末尾加的值
print("\n",end="")
3.数列li[1,2,3,6,5],使其元素输出组成互不相同,数字不重复的组合
我写的
li = [1, 2, 3, 6, 5]for i1 inli:for i2 inli:if i1 !=i2:print(str(i1)+str(i2))
我写的是个狗屁,没读懂题
老师写的
li = [1, 2, 3, 6, 5]
l=len(li)
i= 0 #range()中要用到i,就要在外面定义
for i in range(0, l-i):for v in range(i+1, l):print(li[i], li[v])
4.
我写的
for i in range(1, 20):for v in range(1, 30):for j in range(1, 100):if 5*i+3*v+1/3*j == 100:if i+j+v == 100:
text= "公鸡有{a}只,母鸡有{b}只,小鸡有{c}只"result= text.format(a=i, b=v, c=j)print(result)
老师写的
for i in range(1, 100//5): #// 代表整除
for v in range(1, 100//3):for j in range(1, 100):if 5*i+3*v+1/3*j == 100 and i + j + v == 100:print(i, v, j)
5.
a.
tu = ('alex', "eric", 'rain',)
v=len(tu)print(v)
b.
tu = ('alex', "eric", 'rain',)
v= tu[2]print(v)
c.
tu = ('alex', "eric", 'rain',)
v= tu[1:]print(v)
d.
tu = ('alex', "eric", 'rain',)for v intu:print(v)
e.
tu = ('alex', "eric", 'rain',)for v inrange(len(tu)):print(v)
f.
tu = ('alex', "eric", 'rain',)for v, j in enumerate(tu, start=10):print(v, j)
enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。
6.
百度了一顿
nums = [2, 7, 11, 15, 1, 8, 7]
nums1= list(set(nums)) #去除列表中重复的元素
a =[]
l=len(nums1)
i=0for i in range(0, l-i):for v in range(i+1, l):if nums1[i] + nums1[v] == 9:
a.append((nums1[i],nums1[v]))print(a)
10.
百度和看的老师的
user_list =[]for i in range(1,302):
temp= {"name": "alex"+str(i), "email": "alex1@live.com"+str(i), "pwd": "pwd"+str(i)}
user_list.append(temp)whileTrue:
s= input('输入页码:')ifs.isdigit():
s=int(s)
start= (s-1)*10end= s*10result=user_list[start:end]for item inresult:print(item, type(item))else:print('输入格式错误')
11.通过数字选择类别,输入b返回上一级别,输入q结束程序
dic = {
'植物':
{'草本植物':
['冬播', '春播二月兰', '紫罗兰', '洋葱', '小麦'],
'木本植物':
['松', '杉', '枫杨', '樟茶', '月季', '木槿'],
'水生植物':
['泉生眼子菜', '竹叶眼子菜', '睡莲', '萍蓬草', '荇菜', '菱角', '芡实']
},
'动物':
{'两栖动物':
['蟾蜍', '海龟', '蝾螈', '蜥蜴', '大鲵'],
'禽类':
['鸡', '鸭', '鹅火鸡', '鸽', '鹌鹑'],
'哺乳类动物':
['老鼠', '豪猪', '海狸', '水豚', '狮', '豹']
}
}
go = True
while go:
##第一层
li1 = []
for i, v in enumerate(dic,1):
print(i, v)
li1.append(v)
first = input("选择想看类别")
first = int(first)
while go:
##第二层
li2 = []
for i, v in enumerate(dic[li1[first-1]],1):
print(i, v)
li2.append(v)
second = input("选择功能,看下一层,添加内容,返回上一层,退出程序")
if second.isdigit():
second = int(second)
while go:
##第三层
for i in dic[ li1[first-1] ] [ li2[second-1] ]:
print(i)
fourth = input("是否返回或退出")
fourth = fourth.lower()
if fourth == "b": #返回上一级
break
elif fourth == "q": #程序退出
go = False
break
elif second.isalpha():
second = second.lower()
if second == "add":
lx = input("类型:")
if dic.get(lx, 1) == 1: #要添加类型不存在时返回默认值1
dic[lx] = {}
zl = input("种类:")
if dic[lx].get(zl, 1) == 1:
dic[lx][zl] = []
while True:
mc = input("名称:")
if mc == "q":
break
elif mc in dic[lx][zl]:
print("已将存在")
else:
dic[lx][zl].append(mc)
dic ={'植物':
{'草本植物':
{'冬播':{}, '春播二月兰':{}, '紫罗兰':{}, '洋葱':{}, '小麦':{}},'木本植物':
{'松':{}, '杉':{}, '枫杨':{}, '樟茶':{}, '月季':{}, '木槿':{}},'水生植物':
{'泉生眼子菜':{}, '竹叶眼子菜':{}, '睡莲':{}, '萍蓬草':{}, '荇菜':{}}
},'动物':
{'两栖动物':
{'蟾蜍':{}, '海龟':{}, '蝾螈':{}, '蜥蜴':{}, '大鲵':{}},'禽类':
{'鸡':{}, '鸭':{}, '鹅火鸡':{}, '鸽':{}, '鹌鹑':{}},'哺乳类动物':
{'老鼠':{}, '豪猪':{}, '海狸':{}, '水豚':{}, '狮':{}, '豹':{}}
}
}
path=[]whileTrue:
temp=dicfor item inpath:
temp=temp[item]print('当前可选的所有子节点:', list(temp.keys()))
choice= input('1:添加节点; 2:查看节点(Q退出,B返回)')if choice == "1":
name= input("请输入要添加的节点")
temp[name]={}elif choice == "2":
name= input('请输入要查看的节点名称:')
path.append(name)elif choice.lower() == "b":if path: #空列表是false
path.pop()elif choice.lower() == "q":break
else:print('输入错误,请重新输入!')