python基础面试题51-60

把 aaabbcccd 这种形式的字符串压缩成 a3b2c3d1 这种形式。

b={}
c=""
a="aaabbcccd"
for i in a:
    b[i]=b.get(i,0)+1
for i,t in b.items():
    c+=str(i)
    c+=str(t)
print(c)

Python 一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出 1000 以内的所有完数。

from functools import reduce


def sum(a, b):
    return a + b


for i in range(2, 1001):
    l = [1]
    for j in range(2, int(i / 2 + 1)):
        if i % j == 0:
            l.append(j)
    if i == reduce(sum, l):
        print(i)
        print(l)

给你一个字符串,比如‘abc’,请打印出该字符串的所有排列组合:

以‘abc’为例,输出的结果应该是:'abc', 'acb', 'bac', 'bca', 'cab', 'cba'

def perm(s=''):
    if len(s) <= 1:
        return [s]
    sl = []  
    for i in range(len(s)):  
        for j in perm(s[0:i] + s[i + 1:]):  
            sl.append(s[i] + j)  
    return sl


def main():
    perm_nums = perm('abb')  
    no_repeat_nums = list(set(perm_nums))  # 去重
    print('perm_nums', len(perm_nums), perm_nums)
    print('no_repeat_nums', len(no_repeat_nums), no_repeat_nums)
    pass


if __name__ == '__main__':
    main()

执行以下代码段后,x 的值为

x = 10
x += x
x -= x - x
print(x)

"""
20
"""

对于一个非空字符串,判断其是否可以有一个子字符串重复多次组成,字符串 只包含小写字母且长度不超过 10000

示例 1:

\1. 输入"abab"
\2. 输出True
\3. 样例解释: 输入可由"ab"重复两次组成

示例 2:

\1. 输入"abcabcabc"
\2. 输出True
\3. 样例解释: 输入可由"abc"重复三次组成

示例 3:
\1. 输入"aba"

\2. 输出False

class Solution(object):
    def repeatedSubstringPattern(self, s):
        """
        :type s: str
        :rtype: bool
        """
        n = len(s)
        for i in range(1, n // 2 + 1):
            if n % i == 0:
                a = s[:i]
                j = i
                while j < n and s[j:j + i] == a:
                    j += i
                if j == n: return True

        return False

从0-99这100个数中随机取出10个,要求不能重复,可以自己设计数据结构

print([x * x for x in range(1, 11)])

介绍一下try except的用法和作用?

# Python的except用来捕获所有异常, 因为Python里面的每次错误都会抛出 一个异常,所以每个程序的错误都被当作一个运行时错误。
 
try:
    pass
except BaseException as e:
 
    print(e)
 
finally:
 
    pass

在python中如何抛出,捕获,处理异常?

raise Exception 触发抛出异常
用try和except语句来捕获异常
处理异常的方法有:
try ... except...else语句
finally子句,
with语句

enumerate 的作用是什么?

# 答案
'''
enumerate函数是将一个可迭代对象中元素,按元素顺序每个增加一个索引值,将其组成一个索引序列,利用它可以同时获得索引和值,这样做的目的是为了将一个可迭代对象中元素组成一个“索引,值”对便于后续操作。
'''

lambda 表达式格式以及应用场景?

# 答案

# 匿名就是没有名字
def func(x,y,z=1): return x+y+z
# 匿名
lambda x,y,z=1:x+y+z # 与函数有相同的作用域,但是匿名意味着引用计数为0,使用一次就释放,除非让其有名字 func=lambda x,y,z=1:x+y+z

func(1,2,3)
# 让其有名字就没有意义,与内置函数配合一起使用
posted @ 2019-12-11 21:15  極9527  阅读(475)  评论(0编辑  收藏  举报