方法的常见使用(习题)


1.有两个列表
# l1 = [11,22,33]
# l2 = [22,33,44]
# a. 获取内容相同的元素列表
# b. 获取 l1 中有, l2 中没有的元素列表
# c. 获取 l2 中有, l1 中没有的元素列表
# d. 获取 l1 和 l2 中内容都不同的元素
l1 = [11,22,33]
l2 = [22,33,44]
for i in l2:
if i not in l1:
print(i)
for i in l1:
if i not in l2:
print(i)
count =0

2.获取1,2,3,4,5,6,7,8,8个数中有多少种不重复的两位数组合
(方法1)for i in range(1, 9): 循环
for v in range(1, 9): 嵌套循环
if i !=v: 去重
count += 1
# count = count -8(也为去重作用,因有8个元素,故共8个重复的)
print(count)

(方法2)count =0
ls = [3,5,8,9]
for i in range(0, len(ls)):
for v in range(0, len(ls)):
if i !=v:
count += 1
# count = count -8
print(count)

3.99乘法表
(方法1)for i in range(1,10): #i为1-9中的值
string = ""
for j in range(1,i+1): #为了去掉i和j取值重复,故变为i+1
string +=str(j) + " * "+str(i) + " = " +str(i*j)+"\t"
print(string)


(方法2)for i in range(1,10):
for j in range(1,i+1):
print(str(j) + " * "+str(i) + " = " +str(i*j)+"\t",end="")
print("\n",end="") #每次循环输出后换行再次进行下一次循环


注意:print("aaa",end="") #若不加end“”,则默认为end“\n”,输出默认换行,可重新给end赋值
print("bbb")

4.公鸡5文钱1只,母鸡3文钱一只,小鸡3只1文钱,用100文钱买100只鸡,有多少种买法
for i in range(0,l-1):
for v in range(i+1,l):
print(li[i],li[v])
for x in range(1,100//5): #都可写成range(1,100),但为了减少循环次数,故取总价除以单价的商(取整)为最大循环次数
for y in range(1,100//3):
for z in range(1,100):
if x + y + z == 100 and 5*x + 3*y + z/3 == 100: #需同时满足条件:总数为100;总价为100
print(x,y,z)


5.利用下划线将列表中的每个元素拼接成字符串
li = ['alex','eric',123]
li[2] = str(li[2]) # 因数字不能直接和字符串连接,把列表中数字转换成字符串
v = "_".join(li)
print(v)


6.a.获取元祖的第1-2个元素,并输出
tu = ('alex', 'eric', 'rain')
print(len(tu))
print(tu[2])
print(tu[1:])
#step 为正

#b.请使用for输出元祖的元素
print(tu[1:90])
for elem in tu:
print(elem)

# c.请使用for、len、range输出元祖的索引
for idx in range(len(tu)):
print(idx)

# d.请使用enumerate输出元祖元素和序号(序号从10开始)
for idx, elem in enumerate(tu, 10):
print(idx, elem)
tu =(
"alex",
[
11,
22,
{
"k1":'v1',
"k2":["age","name"],
"k3":(11,22,33)
},
44
]
)
tu[1][2]["k2"].append("")


nums = [2,7,11,15,1,8,7]
a =[]
for i in range(len(nums)):
for j in range(len(nums)):
if nums[i] + nums[j] ==9:
a.append((i,j,))
print(a)

7.按要求操作列表
li = ["sdsdsd","eric"]
print (len(li)) #计算列表的长度
li.append("dsad") #在列表中追加元素
li.insert(0,"dsad") #在列表的第一个位置插入元素
li.remove("eric") #删除列表中的元素
v = li.pop(1) #删除列表中的第二个元素
print(li,v) #输出删除后列表和删除的元素


#将列表所有的元素反转,并输出反转后的结果
v = li.reverse()
print(V)

#使用 for、range、len输出列表的索引
for i in range(len(li)):
print(i)


#使用enumerate输出列表的元素和序号(序号从100开始)
for i,q in enumerate(li,100):
print(i,q)

#使用for循环输出列表的所有元素
for i in li:
print(i)


8. 分页
# 通过for循环创建301条数据,数据类型不限
user_list = [
]
for i in range(1,302):
temp = {'name': 'alex'+str(i), 'email': 'alex@lve.com' + str(i), 'pwd': 'pwd'+str(i)}
user_list.append(temp)

while True:
# 每页显示10条数据
s = input("请输入1,2,3-31页码:")
s = int(s)
# user_list[0,10] 1 第1页应显示1—10条
# user_list[10,20] 第2页应显示10—20条
# user_list[20,30] 3
start = (s-1) * 10 #增加变量start每页开始条数
end = s * 10 #增加变量end每页结束条数
result = user_list[start: end] #列表结果应显示开始的条数到结束的条数的值,通过切片把结果拿出来
for item in result: #增加for循环
print(item,type(item)) #输出item,并显示输出方式
posted @ 2018-09-23 17:45  黄黄可爱  阅读(667)  评论(0编辑  收藏  举报