Python题库
Date:2018-05-08
1、Given: an array containing hashes of names
Return: a string formatted as a list of names separated by commas except for the last two names, which should be separated by an ampersand.
Example:
namelist([ {'name': 'Bart'}, {'name': 'Lisa'}, {'name': 'Maggie'} ])
# returns 'Bart, Lisa & Maggie'
namelist([ {'name': 'Bart'}, {'name': 'Lisa'} ])
# returns 'Bart & Lisa'
namelist([ {'name': 'Bart'} ])
# returns 'Bart'
namelist([])
# returns ''
Best Practices:
def namelist(names):
if len(names) > 1:
return '{} & {}'.format(', '.join(name['name'] for name in names[:-1]),
names[-1]['name'])
elif names:
return names[0]['name']
else:
return ''
My solutions:
def namelist(names):
#your code here
if len(names) > 1:
first_name = ', '.join(tmp_name['name'] for tmp_name in names[:-1])
last_name = names[-1]['name']
return first_name + ' & ' + last_name
elif names:
return names[0]['name']
else:
return ''
2、Complete the method/function so that it converts dash/underscore delimited words into camel casing. The first word within the output should be capitalized only if the original word was capitalized.
Examples
to_camel_case("the-stealth-warrior") # returns "theStealthWarrior"
to_camel_case("The_Stealth_Warrior") # returns "TheStealthWarrior"
Best Practices:
def to_camel_case(s):
return s[0] + s.title().translate(None, "-_")[1:] if s else s
My solutions:
import re
def to_camel_case(text):
result = ''
tmp_re = re.split('[-_]',text)
for i in range(1,len(tmp_re)):
result += tmp_re[i].capitalize()
return tmp_re[0] + result
3、In a small town the population is p0 = 1000 at the beginning of a year. The population regularly increases by 2 percent per year and moreover 50 new inhabitants per year come to live in the town. How many years does the town need to see its population greater or equal to p = 1200 inhabitants?
At the end of the first year there will be:
1000 + 1000 * 0.02 + 50 => 1070 inhabitants
At the end of the 2nd year there will be:
1070 + 1070 * 0.02 + 50 => 1141 inhabitants (number of inhabitants is an integer)
At the end of the 3rd year there will be:
1141 + 1141 * 0.02 + 50 => 1213
It will need 3 entire years.
Best Practices:
def nb_year(population, percent, aug, target):
year = 0
while population < target:
population += population * percent / 100. + aug
year += 1
return year
My solutions:
def nb_year(p0, percent, aug, p):
re = p0
year = 0
while p0 < p:
p0 = p0*(1+percent/100) + aug
year += 1
return year
4、You are given an array (which will have a length of at least 3, but could be very large) containing integers. The array is either entirely comprised of odd integers or entirely comprised of even integers except for a single integer N. Write a method that takes the array as an argument and returns this "outlier" N.
Examples
[2, 4, 0, 100, 4, 11, 2602, 36]
Should return: 11 (the only odd number)
[160, 3, 1719, 19, 11, 13, -21]
Should return: 160 (the only even number)
Best Practices:
def find_outlier(integers):
parity = [n % 2 for n in integers]
return integers[parity.index(1)] if sum(parity) == 1 else integers[parity.index(0)]
My solutions:
def find_outlier(intergers):
ji = [x for x in intergers if x%2!=0]
ou = [x for x in intergers if x%2==0]
return ji[0] if len(ji)<len(ou) else ou[0]
Date:2018-05-010
1、There is an array with some numbers. All numbers are equal except for one. Try to find it!
findUniq([ 1, 1, 1, 2, 1, 1 ]) === 2
findUniq([ 0, 0, 0.55, 0, 0 ]) === 0.55
Best Practices:
def find_uniq(arr):
a, b = set(arr)
return a if arr.count(a) == 1 else b
My solutions:
def find_uniq(arr):
if arr[0] != arr[1]:
for i in arr[2:]:
if i == arr[0]:
n = arr[1]
else:
n = arr[0]
else:
for i in arr[2:]:
if i != arr[0]:
n = i
return n
Date:2018-05-16
1、Implement the function unique_in_order which takes as argument a sequence and returns a list of items without any elements with the same value next to each other and preserving the original order of elements.
For example:
unique_in_order('AAAABBBCCDAABBB') == ['A', 'B', 'C', 'D', 'A', 'B']
unique_in_order('ABBCcAD') == ['A', 'B', 'C', 'c', 'A', 'D']
unique_in_order([1,2,2,3,3]) == [1,2,3]
Best Practices:
unique_in_order = lambda l: [z for i, z in enumerate(l) if i == 0 or l[i - 1] != z]
My solutions:
def unique_in_order(iterable):
result = []
pre = ''
for x in iterable[0:]:
if x != pre:
result.append(x)
pre = x
return result
Date:2018-05-17
1、You probably know the "like" system from Facebook and other pages. People can "like" blog posts, pictures or other items. We want to create the text that should be displayed next to such an item.
Implement a function likes :: [String] -> String, which must take in input array, containing the names of people who like an item. It must return the display text as shown in the examples:
likes [] // must be "no one likes this"
likes ["Peter"] // must be "Peter likes this"
likes ["Jacob", "Alex"] // must be "Jacob and Alex like this"
likes ["Max", "John", "Mark"] // must be "Max, John and Mark like this"
likes ["Alex", "Jacob", "Mark", "Max"] // must be "Alex, Jacob and 2 others like this"
Best Practices:
def likes(names):
n = len(names)
return {
0: 'no one likes this',
1: '{} likes this',
2: '{} and {} like this',
3: '{}, {} and {} like this',
4: '{}, {} and {others} others like this'
}[min(4, n)].format(*names[:3], others=n-2)
My solutions:
def likes(names):
if names:
if 1 == len(names):
return names[0] + ' likes this'
elif 2 == len(names):
return names[0] + ' and ' + names[1] + ' like this'
elif 3 == len(names):
return names[0] + ', ' + names[1] + ' and ' + names[2] + ' like this'
else:
l = len(names) - 2
return names[0] + ', ' + names[1] + ' and ' + str(l) + ' others like this'
else:
return 'no one likes this'
Python题库的更多相关文章
- 『Python题库 - 填空题』151道Python笔试填空题
『Python题库 - 填空题』Python笔试填空题 part 1. Python语言概述和Python开发环境配置 part 2. Python语言基本语法元素(变量,基本数据类型, 基础运算) ...
- 『Python题库 - 简答题』 Python中的基本概念 (121道)
## 『Python题库 - 简答题』 Python中的基本概念 1. Python和Java.PHP.C.C#.C++等其他语言的对比? 2. 简述解释型和编译型编程语言? 3. 代码中要修改不可变 ...
- Python题库系列分享一(17道)
1.1 到Python官方网站下载并安装Python解释器环境.1.2 到Anaconda官方网站下载并安装最新的Anaconda3开发环境.1.3 Python程序的__name__的作用是什 ...
- python 题库1
1. 生成一个1到50的大字符串,每个数字之间有个空格,例如1 2 3 4 ……50 解题思路: (1)声明一个空字符串变量用于保存生成的字符串 (2)使用for循环+range()函数生成一个1到5 ...
- Python解答力扣网站题库简单版----第三讲
1041. 困于环中的机器人 题库链接: 1041. 困于环中的机器人. 题干 在无限的平面上,机器人最初位于 (0, 0) 处,面朝北方.机器人可以接受下列三条指令之一: "G" ...
- 小学生噩梦——四则运算题库(python 全功能实现)
Github: https://github.com/holidaysss 小组:龙天尧(代码实现),林毓植(浮点转分数函数,代码审查) PSP2.1 Personal Software Proces ...
- python第六天 函数 python标准库实例大全
今天学习第一模块的最后一课课程--函数: python的第一个函数: 1 def func1(): 2 print('第一个函数') 3 return 0 4 func1() 1 同时返回多种类型时, ...
- Python 标准库一览(Python进阶学习)
转自:http://blog.csdn.net/jurbo/article/details/52334345 写这个的起因是,还是因为在做Python challenge的时候,有的时候想解决问题,连 ...
- Python turtle库详解
Python turtle库详解 Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x.纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在 ...
随机推荐
- 中国象棋游戏Chess(3) - 实现走棋规则
棋盘的绘制和走棋参看博文:中国象棋游戏Chess(1) - 棋盘绘制以及棋子的绘制,中国象棋游戏Chess(2) - 走棋 现在重新整理之前写的代码,并且对于每个棋子的走棋规则都进行了限制,不像之前那 ...
- 收集一些dos网络配置命令,从新获取ip刷新dns
今天台式机插着无线网卡连接学校无线网,结果就要登录了,完后ip地址固定半天,换了mac地址重新分配还是不能改,ping了主机也不通,我想可能是dns没有刷新.现在收集几个dos命令用来配置网络: 1. ...
- SQL 是一门美丽的语言 她来自艺术
有一种语言可以从诞生一直活跃到现在,有一个梦想从南四楼蔓延到北五楼再走向世界,有一种坚持可以从懵懂年少成长为干练成熟,有一本书可以温暖心灵彼岸,与数据库抨击撞出火花,有一个系统足以让你忘 ...
- 关于masm中OFFSET伪指令对结构的影响
在masm中,如果offset修饰全局变量,则他返回的是变量的相对于其所在段的偏移,并且offset不能修饰局部变量哦. 若offset修饰的是文字常量则将被忽略: VAL = 1000h mov e ...
- spring事务探索
spring自建事务管理模块.而且这个事务管理是一个抽象设计,可以应用到很多场合,包括普通的DataSource,jta,jms和hibernate上. 要正确使用spring的事务,首先需要了解s ...
- 《MySQL必知必会》读书笔记_2
通配符:(尾空格可能会干扰通配符匹配) % 匹配任意字符 _ 匹配任意单个字符 正则表达式:REGEXP 用法就是替换掉LIKE的位置,后面配合正则表达式. 默认不区分大小写,如果区分的话添加关键字B ...
- 大数据征信的应用和启示:ZestFinance的基于大数据的信用评估技术
http://www.d1net.com/bigdata/news/325426.html 2014年11月,本文作者有机会和ZestFinance的创始人和首席执行官梅里尔(Douglas C.Me ...
- 用python抓取智联招聘信息并存入excel
用python抓取智联招聘信息并存入excel tags:python 智联招聘导出excel 引言:前一阵子是人们俗称的金三银四,跳槽的小朋友很多,我觉得每个人都应该给自己做一下规划,根据自己的进步 ...
- Sublime text 3 注册码激活码 版本号3143
—– BEGIN LICENSE —– TwitterInc 200 User License EA7E-890007 1D77F72E 390CDD93 4DCBA022 FAF60790 61AA ...
- 微信小程序中自定义函数的学习使用
新手,最近在给学校搞个党费计算器.需要自己定义函数来实现某个功能. 1.无参函数: 函数都是写在js文件里面的. Page({ data:{ income1:'0', }, cal:function( ...