Python 练习 2020/07/13

11. 求两个集合的交集和并集
set1={1,2,3,4,5}
set2={3,4,5,6,7}

#交集
result=[]

for i in set1:
    if i in set2:
        result.append(i)

print(result)

#并集
result=[]
for i in set1:
    if i not in set2:
        result.append(i)
for i in set2:
    if i not in set1:
        result.append(i)

print(result)

12. 一个包含多个数字的列表,请使用随机的方式,将每个数字+1后,生成新列表
#1
"""
生成一个临时列表temp存储取出来的数字
result存储最后的新列表
用while 遍历
利用random.choice 随机取出一个数字,如果没有再temp中就加到temp中
len(temp)==4 就break
再遍历temp,每个+1
"""

import random
lst=[1,2,3,4,5,6]
temp=[]
result=[]

while True:
    number=random.choice(lst)
    if number not in temp:
        temp.append(number)
    else:
        continue
    if len(temp)==6:
        break

for i in range(len(temp)):
    result.append(temp[i]+1)

print(result)

#2
import random
lst=[1,2,3,4,6]
result=[]

while True:
    lst_index=random.randint(0,4)
    if lst_index not in result:
        result.append(lst_index)
        lst[lst_index]+=1
    if len(result)==5:
        break

print(lst)
13. 判断一个字符串是否为回文字符串
所谓回文字符串,就是一个字符串,从左到右读和从右到左读是完全一样的。
比如"level" 、 “aaabbaaa”

"""
判断是奇数还是偶数:
字符串位奇数时:s[0:len(s)//2]==s[-1:-len(s)//2:-1](-5//2==3,所以不用+1)
字符串偶数时:s[0:len(s)//2]==s[-1:-len(s)//2-1:-1]

"""
def is_same_letter(s):
    if len(s)%2 !=0:
        if s[0:len(s)//2]==s[-1:-len(s)//2:-1]:
            return '是一个回文字符串'
        else:
            return '不是一个回文字符串'
    if len(s)%2==0:
        if s[0:len(s)//2]==s[-1:-len(s)//2-1:-1]:
            return '是一个回文字符串'
        else:
            return '不是一个回文字符串'



print(is_same_letter('level'))
print(is_same_letter('aaabbaaa'))
print(is_same_letter('adfsdd'))
print(is_same_letter('aba'))

14. 实现合并同类型的有序列表算法,要求不能有重复元素
lst1 = [1,1,2,3,4]
lst2 = [2,3,4,5,5,8]
result=[]

for i in lst1:
    if i not in lst2:
        result.append(i)
for i in lst2:
    if i not in result:
        result.append(i)

print(sorted(result))

15. 不区分大小写对包含多个字符串对象的列表进行排序,显示排序后的结果还需要显示大小写不变的原字符串
l = ["Abc","zhangsan","gloryroad","nanjing"]

print(sorted(l))

16、一个数如果恰好等于它的因子之和,这个数就称为完数,例如6的因子为1,2,3,而6=1+2+3,因此6是完数,编程找出1000之内的所有完数,并按6 its factors are 1,2,3这样的格式输出
for i in range(1,1000):
    result=[]
    #求约数
    for j in range(1,i):
        if i%j ==0: #除以小于自身的数
            result.append(j)
    #求1-1000中的数是否==sum(result)
    if i==sum(result):
        print('%s its factors are'%i,end='')
        for value in result:
            print(value,end=' ')
        print()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值