IWSPythoner

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

python 面试题

  • 请至少用一种方法实现下面字符串的反转 hello world --> dlrow olleh(整体反转) hello world --> olleh dlrow(按单词反转

str = 'hello world'

hello world --> dlrow olleh(整体反转)

1.切片

str1 = str[::-1]
print(str1)
 
2.遍历字符串
str2 = ''
i = len(str)-1
while i >= 0:
  str2 += str[i]
  i -= 1
print(str2)
 

hello world --> olleh dlrow(按单词反转)

1、遍历切割后列表切片
str3 = str.split()
str4 = ''
for i in range(0, len(str3)):
  str4 += str3[i][::-1]+' '
  i += 1
print(str4)
 
 
2、循环遍历字符串
str2 = ''
for i in str:
  if i is' ':
    index = str.find(i)
    #找到空字符 那么先将 之前的字符 反转
    j = index -1
    while j >= 0:
      str2 += str[j]
      j -= 1
    str2 += '  '
      #之后的字符 反转
    n = len(str)-1
    while n >= index+1:
      str2 += str[n]
      n -= 1 
print(str2)
  • 请手写一个lambda函数

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

print(sum(1, 2))


#匿名函数
sum = lambda a, b : a + b

print(sum(1, 2))
  • 请手写一个函数,用来取出1—100(均包含)中9的倍数或者有数字9的所有整数


定一个函数

def numli(num):
  li = []
  for i in range(1, num+1):
    if i % 9 == 0 or str(i).find('9') != -1:
      li.append(i)
 
return li
 

print(numli(100))
 
>> [ 9, 18, 19, 27, 29, 36, 39, 45, 49, 54, 59, 63, 69, 72, 79, 81, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99]
 
  • Python里面如何实现tuple和list的转换

li = [1,2,3,4]

print(tuple(li))

li1 = (1,2,3,4)
print(list(li1))

str = '123'

print(list(str))
  • Python里面match()和search()的区别?


'''match()从第一个字符开始找,如果第一个就不匹配,会直接返回None,不继续匹配.主要用于匹配开头'''



#coding=utf-8

import re

result = re.match("www","www.cn")

result.group()
 
>>'www'
# 否则返回None


'''search()会在整个字符串中查找,知道找到一个匹配的'''
#coding=utf-8
import re

ret = re.search(r"\d+", "阅读次数为 9999")
ret.group()

>> 9999
  • 浅拷贝和深拷贝


# 下面代码会输出什么:
def f(x,li=[]):
for i in range(x):
li.append(i*i)
print(li)
f(2) #[0, 1]
f(3,[3,2,1]) # [3,2,1,0,1,4]
f(3) #[0,1,0,1,4] 此时li是[0,1]
  • 单例模式

class CarFactory(object):
    __first_new = True
    __instance = None

    def __new__():
        if __first_new:
            cls.__instance = object.__new__(cls)
            cls.__first_new = False
            return cls.__instance
        else:
            return cls.__instance
posted on 2017-09-05 12:57  IWSPythoner  阅读(89)  评论(0)    收藏  举报