day6-作业(不完整)

# 1.用代码实现:利用下划线将列表的'每一个元素'拼接成字符串 li=['ndfj','dlfj',12434]
# 注意是将元素与元素转换为字符串之间用_拼接,而不是将每个字符串进行拼接
li=['ndfj','dlfj',12434]
li[2]=str(li[2])
print('_'.join(li) )
# print:ndfj_dlfj_12434
s = ''
for i in li:
    s = s + str(i)
print('_'.join(s) )
# 结果为:n_d_f_j_d_l_f_j_1_2_4_3_4
# 3.写代码,有如下列表,按照要求实现每一个功能
li = ['ales','eric','rain']
# a.计算列表长度并输出
# b.列表中追加元素'seven'并输出添加后的列表
# c.在列表的第一个位置插入元素‘tony'输出添加后的列表
# d.修改列表第二位置的元素'kelly'输出列表
# e.删除列表中的元素'eric'输出列表
# f.删除列表中的第二个元素,输出删除后的元素的值和删除元素后的列表
# g.删除列表第三个元素,输出删除元素后的列表
# h.删除列表的第2-4个元素,输出删除后的列表
# i.将列表元素反转,输出反转后的列表
# j.使用for,len,range输出列表的索引
# k.使用enumerate输出列表元素和序号,序号从100开始
# l.使用for循环输出列表的所有元素
print(len(li) )
li.append('seven')
print(li)
li.insert(0,'tony') # insert(位置,插入元素)
print(li)
li[2]='kelly'
print(li)
li.remove('eric')
print(li)
v = li.pop(1)
print(v)
print(li)
li.pop(2)
print(li)
del li[1:3]
print(li)
li.reverse()
print(li)
for i in range (len(li) ):
    print(i)
for i,j in enumerate (li,100):
    print(i,j)
for i in li:
    print(i)
# 5.写代码,实现如下功能
# tu = ('alex','eric','rain').
# a.计算元组长度并输出
# b.获取元组的第二个元素,并输出
# c.获取元组的第1-2个元素
# d.使用for输出元组的元素
# e.使用for\len\range输出元组的索引,元组的索引指?
# f.使用enumrate输出元组元素和序号,(序号从10开始)
tu = ('alex','eric','rain')
print(len(tu) )
# 3
print(tu[1])
# eric
print(tu[1:3])
# ('eric', 'rain')
for i in tu:  # 获取元组元素
    print(i)
    # alex
    # eric
    # rain
for j in tu:  # 获取元组元素索引
    print(tu.index(j))
    # 0
    # 1
    # 2
for j in range(len(tu) ): # 获取元组元素索引
    print(j)
    # 0
    # 1
    # 2
# enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中
# enumerate(sequence, [start=0])
# sequence -- 一个序列、迭代器或其他支持迭代对象。
# start -- 下标起始位置。
# for i,j in enumerate(tu,10):
# print(i,j)
# 10 alex
# 11 eric
# 12 rain
# 6.有如下变量,实现要求的功能
# tu = ('alex',[11,22,{'k1':'v1','k2':['age','name'],'k3':(11,22,33)},44])
# a.讲述元组的特性
# b.tu变量中的第一个元素'alex'是否可被修改
# c.tu变量中的'k2'对应的值是什么类型,是否可以被修改,若可以,在其中添加一个元素'seven'
# d.tu变量中的'k3'对应值的类型是什么,是否可以被修改,若可以,在其中添加一个元素'seven'
tu = ('alex',[11,22,{'k1':'v1','k2':['age','name'],'k3':(11,22,33)},44])
# a.元组的一级元素不可以修改删除添加
# b.第一个元素不可修改
# c.k2对应值的类型是列表,可以修改,直接调用列表的特性添加
tu = ('alex',[11,22,{'k1':'v1','k2':['age','name'],'k3':(11,22,33)},44])
tu[1][2]['k2'].append('seven')
print(tu)
# 7.布尔值出现False的七种情况 3+3+1
# 3.三种空的符号:[],(),{}
# 3.三个基本类型:整型,字符串,BOOL
# 1.NONE
# 14题
# l1 = [11,22,33,77,99,78]
# l2 = [22,33,44,78,99]
# a. 获取内容相同的元素列表
# b. 获取 l1 中有, l2 中没有的元素列表
# c. 获取 l2 中有, l1 中没有的元素列表
# d. 获取 l1 和 l2 中内容都不同的元素
l3 = []
l4 = []
l5 = []
l6 = []
for i in l1:
    if i not in l2:    # l1有 l2没有的元素
        l3.append(i)
print(l3)
for i in l2:
    if i not in l1:    # l2有 l1没有的元素
        l4.append(i)
print(l4)
l5 = l3 + l4
print(l5)               # l1\l2中内容不同的元素列表集合

for i in l2:
    if i in l1:
        # print(i)
        l6.append(i)    # l1\l2 相同内容元素集合
print(l6)
16.分页显示内容
a.通过for循环创建301条数据,数据类型不限,如
alex-1 alex1@live.com pwd1
alex-2 alex2@live.com pwd2
alex-3 alex3@live.com pwd3
...
b.提示用户请输入要查看的页码,当用户输入指定页码,则显示指定数据
注意:-每页显示10条数据,-用户输入页码是非十进制数字,则显示输入内容格式错误
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("请输入页码:")
    s = int(s)
    # user_list[0,10]  1
    # user_list[10,20]  2
    # user_list[20,30]  3
    start = (s-1) * 10
    end = s * 10
    result = user_list[start: end]
    for item in result:
        print(item,type(item))
# 17.有1、2、3、4、5、6、7、8、8个数字,能组成多少个互不相同无重复数字的两位数,怎么将数字打印出来
# 题意解析:
# 1求数,因此需要用到count计数
# 2.1-8,8个数字,需要用到随机range
# 3.用到循环for
count = 0
for i in range (1,9):
    for j in range(1,9):
        if i != j:
            print(i, j)
            count += 1
print(count )
 输出99乘法表
# 1.for 循环
# 2.按照乘法表的格式为直角三角形,需要用到 \t 换行符
# 3.不能有重复的1*2、2*1
# 4.每一行的顺序1*3、2*3、3*3......
# 5.打印出来的结果格式为 1*1=1之类的格式,需要用到数字转换为字符串类型
for i in range(1,10):
    for j in range (1,10):
        print(str(j) + "*" + str(i) + "=" +str (i*j))
# 这样输出的结果不符合2、3、4格式
string = ''
for i in range(1,10):
    for j in range (1,i+1):
        string +=  str(i) + "*" + str(j) + "=" +str (i*j) + "\t"
    print(string)
#这样不满足3,结果有重复值,
法1
for i in range(1,10):
    string = ''
    for j in range (1,i + 1):
        string +=  str(j) + "*" + str(i) + "=" +str (i*j) + "\t"
    print(string)
# 法2 print(values,sep=,end='\n')sep指当有多个values输出结果时,默认用空格隔开,end指每次输出的结果尾部换行,下面将换行符去掉,则同一循环的结果将在一行显示,结束该循环后设置换行
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="")
# 19.列表nums=[2,7,11,15,1,8,7]
# 找到列表中任意两个元素相加能够等于9的元素集合:如:[(0,1),(4,5)]
nums=[2,7,11,15,1,8,7]
v = []
for i in nums:
    # nums.remove(i)
    for j in nums:
        if  i + j == 9 :
            # v+=[(i,j)]
            v.append((i,j))
print(v)
# [(2, 7), (2, 7), (7, 2), (1, 8), (8, 1), (7, 2)]
v = []
for i in range (len(nums)):
    for j in range (len(nums)):
        if  nums[i] + nums[j] == 9:
            v.append((i, j))
print(v)
# [(0, 1), (0, 6), (1, 0), (4, 5), (5, 4), (6, 0)]

v = []
for i in nums:
    for j in nums:
        if  i + j == 9:
            v .append((nums.index(i), nums.index(j)) )
print(v)
# [(0, 1), (0, 1), (1, 0), (4, 5), (5, 4), (1, 0)]
# 20.用python开发程序自动计算方案
# 公鸡5元一只,母鸡3元一只,小鸡3只一元,条件1
# 用100块钱买100只鸡,其中公鸡母鸡小鸡都必须要有,问公鸡母鸡小鸡要买多少只刚好凑够100元,条件2
# 公鸡x\母鸡y\小鸡z
for x in range (1,100//5):
    for y in range (1,100//3):
        for z in range (1,100):
            if 5*x + 3*y + z/3 == 100 and x + y + z == 100:
                print(x, y, z)

 



posted @ 2019-10-14 22:51  mada’sPythonroad  阅读(209)  评论(0编辑  收藏  举报