练习题目
1.有1、2、3、4、5、6、7、8,8个数字总共能组成多少个互不相同且不重复的数字的两位数:
li = [1,2,3,4,5,6,7,8]
count =0
for i in li :
for m in li:
if i ==m:
continue
else:
count+=1
print(count)
2.请写出9*9乘法口诀;
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="")
结果是:
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
3.公鸡5文钱一只,母鸡3文钱一只,小鸡3只一文1钱,用100文钱买一百只鸡,其中公鸡母鸡小鸡都要买,请问公鸡母级小鸡买多少只可以凑够100文钱:
for i in range(1,20):
for m in range(1,33):
for n in range(1,100):
if i +m +n ==100 and i*5 +m*3 +n/3 ==100:
print(i,m,n)
结果是:
4 18 78
8 11 81
12 4 84
4.请用代码实现利用下划线将列表中的每一个元素拼接成一个字符串:
只有字符串:
li = ['jfklj', 'lkfj','jfkljf']
v ='_'.join(li)
print(v)‘
既有字符串又有数字的情况:
li4 =['jfklj','jfkj',3345,'jfklj','fkj']
st =''
lie =''
for i in li4:
st+=lie+str(i)
lie ='_'
print(st)
结果:
jfklj_lkfj_jfkljf
jfklj_jfkj_3345_jfklj_fkj
5.写一下代码:如下元组代码,按照要求实现每一个功能:
tu=(‘alex’,‘Eric,’rain)
1.计算元组的长度并输出
2.获取元组的第二个元素并输出
3.获取元组的第一个元素并输出
4,请使用for循环输出所有的元素
5.请使用 for len range 输出元素的索引
6 .请使用enumrate输出元组元素和序号:
tu = ('alex','eric','rain')
print(len(tu))
print(tu[1])
print(tu[1:3])
for i in tu:
print(tu)
for m in range(len(tu)):
print(m)
结果是;
3
eric
('eric', 'rain')
('alex', 'eric', 'rain')
('alex', 'eric', 'rain')
('alex', 'eric', 'rain')
0
1
2
tu = ('alex','eric','rain')
for i,index in enumerate(tu):
print(i,index)
结果是:
0 alex
1 eric
2 rain
8.有如下变量,请实现要求的功能;
tu =('alec',[11,22,{'k1':'v1','k2':'['age','name'],'k3:(11,22,33)},44[)
1,讲述元组的特性,
2,请问tu变量中的第一个元素‘alex’是否可以被修改“
3.请问tu变量中的k2对应的值是什么类型,是否可以被修改,如果可以被修改请在其中添加一个元素‘seven‘
4。请问tu变量中的k3对应的值是什么类型是否可以被修改,如果可以被修改请在其中添加一个元素‘seven‘
答: 1.元组的特性是:元组不可以进行修改、替换、他是列表的二次加工,
2.不可以被修改
3.列表,可以被修改 方法如下:
4.元组类型,不可以被修改
tu =('alex',[11,22,{'k1':'v1','k2':['age','name',],'k3':(11,22,33)},44])
tu [1][2]['k2'].append('seven')
print(tu)
结果是:
('alex', [11, 22, {'k1': 'v1', 'k2': ['age', 'name', 'seven'], 'k3': (11, 22, 33)}, 44])
9有以下列表
nums=【2,7,11,15,1,8,7】
请找到列表中任意两个元素相加等于9的元素集合,
li = []
nums = [2,7,11,15,1,8,7]
for i in nums:
for n in nums:
if i +n == 9:
li.append((i,n))
print(li)
结果是
[(2, 7), (2, 7), (7, 2), (1, 8), (8, 1), (7, 2)]
10有一个列表:li = 【'alex','erlc','rain'】
a计算列表长度并输出
b:列表中追加元素’seven‘并输出添加后的列表
c:请在列表的第一个位值加入一个元素’tony‘并输出添加后的列表
d:请删除列表中的元素’eric‘并输出修改后的列表
e:请删除列表中的第二个元素,并输出删除后的元素的值和索引
li = ['alex','eric','rain']
print(len(li))
li.append('seven')
print(li)
li.insert(0,'tony')
print(li)
li.remove('eric')
print(li)
li.pop(1)
print(li)
结果是:
3
['alex', 'eric', 'rain', 'seven']
['tony', 'alex', 'eric', 'rain', 'seven']
['tony', 'alex', 'rain', 'seven']
['tony', 'rain', 'seven']
16.分页显示:
a通过for循环创建301条数据,数据类型不限,如
alex-1 alex1@live.com pwd1
alex-2 alex2@live.com pwd2
alex-3 alex3@live.com pwd3
b.提示用户请输入要查看的页码,当用户输入指定的页码,则显示指定数据,注意;
1.每页显示10条数据
2.用户输入页码是非十进制数字时,则提示输入内容格式错误
li = []
for i in range(1,302):
li.append("alex"+"_"+str(i)+"\t""alex"+str(i)+"@live.com"+"\t""pwd"+str(i))
n = input('请输入页码并且每页显示10条;')
m =1
while m:
if n.isdecimal():
m=0
else:
n=input("请重新输入数字")
print('你想查找的数据是:')
new_n=int (n)
print(li[(new_n-1)*10:new_n*10])
结果是:
请输入页码并且每页显示10条;d
请重新输入数字jklj
请重新输入数字5
你想查找的数据是:
['alex_41\talex41@live.com\tpwd41', 'alex_42\talex42@live.com\tpwd42', 'alex_43\talex43@live.com\tpwd43', 'alex_44\talex44@live.com\tpwd44', 'alex_45\talex45@live.com\tpwd45', 'alex_46\talex46@live.com\tpwd46', 'alex_47\talex47@live.com\tpwd47', 'alex_48\talex48@live.com\tpwd48', 'alex_49\talex49@live.com\tpwd49', 'alex_50\talex50@live.com\tpwd50']
li = [] for i in range(1,302): li.append('alex%s/t alex%s@live.com/t pwd%s'%(i,i,i)) n = input('请输入页码并且每页显示10条;') m =1 while m: if n.isdecimal(): m=0 else: n=input("请重新输入数字") print('你想查找的数据是:') new_n=int (n) le=(li[(new_n-1)*10:new_n*10]) for i in le: print(i) 结果是: alex141/t alex141@live.com/t pwd141 alex142/t alex142@live.com/t pwd142 alex143/t alex143@live.com/t pwd143 alex144/t alex144@live.com/t pwd144 alex145/t alex145@live.com/t pwd145 alex146/t alex146@live.com/t pwd146 alex147/t alex147@live.com/t pwd147 alex148/t alex148@live.com/t pwd148 alex149/t alex149@live.com/t pwd149 alex150/t alex150@live.com/t pwd150