Table of Contents
- 1. 1000道Python题库系列分享一(17道)
- 2. 1000道Python题库系列分享二(48道)
- 3. 1000道Python题库系列分享三(30道)
- 4. 1000道Python题库系列分享四(40道)
- 5. 1000道Python题库系列分享五(40道)
- 6. 1000道Python题库系列分享六(40道)
- 7. 1000道Python题库系列分享七(30道)
- 8. 1000道Python题库系列分享八(29道)
- 9. 1000道Python题库系列分享九(31道)
- 10. Hackerrank
- 10.1. string validator
- 10.2. find a string
- 10.3. calendar-module
- 10.4. python mutation
- 10.5. door mat
- 10.6. leap year
- 10.7. find angle MBC
- 10.8. Print the palindromic triangle of size N
- 10.9. list-comprehensions
- 10.10. timedelta
- 10.11. text wrapper
- 10.12. words score
- 10.13. words capital
- 10.14. calculate Karl Person's coefficient of correlation:
- 10.15. Bot saves princess
- 10.16. find the second smallest in nested list:
Author | weiwu (victor.wuv@gmail.com) |
Date | 2018-08-28 07:34:55 |
Title |
http://www.10tiao.com/html/383/201801/2247486052/1.html
Yes
No
1 1000道Python题库系列分享一(17道)
1.1 到Python官方网站下载并安装Python解释器环境。
1.2 到Anaconda官方网站下载并安装最新的Anaconda3开发环境。
1.3 Python程序的_name_的作用是什么?
每个Python程序都有一个__name__变量,用来表示程序的运行方式。当作为模块导入时,__name__变量的值等于程序文件名,当直接运行程序时其值为字符串’__main__’。
#!/usr/bin/python # Filename: using_name.py if __name__ == '__main__': print 'This program is being run by itself' else: print 'I am being imported from another module'
$ python >>> import using_name I am being imported from another module
1.4 Python安装扩展库常用的工具是_____pip___和conda,其中后者需要安装Python集成开发环境Anaconda3之后才可以使用,而前者是Python官方推荐和标配的。
1.5 Python程序文件扩展名主要有____.py____和__.pyw______两种,其中后者常用于GUI程序。
1.6 Python源代码程序伪编译后的文件扩展名为__.pyc_______。
1.7 使用pip工具在线安装Excel文件操作扩展库openpyxl的完整命令是__________。
pip install openpyxl
1.8 使用pip工具在线升级科学计算扩展库numpy的完整命令是__________。
pip install numpy --update
1.9 使用pip工具把本机已安装的Python扩展库及版本信息输出到文本文件requirements.txt中的完整命令是__________。
pip freeze > requirements.txt
1.10 使用pip工具查看当前已安装的Python扩展库(不含版本号)的完整命令是__________。
pip list
1.11 判断对错:Python是一种跨平台、开源、免费的高级动态编程语言。
Yes
1.12 判断对错:Python 3.x完全兼容Python 2.x。
No
1.13 判断对错:在Windows平台上编写的Python程序无法在Unix平台运行。
No
1.14 判断对错:不可以在同一台计算机上安装多个Python版本。
No
1.15 判断对错:pip命令支持使用扩展名为whl的文件离线安装Python扩展库。
Yes
1.16 判断对错:下载whl文件进行离线安装扩展库时,因为whl文件的名字都比较长,可以改成短一些的名字再使用pip进行安装。
No
1.17 判断对错:用来安装Python扩展库的pip命令应该在命令提示符环境下运行,如果安装了多个版本的Python,最好切换至相应版本的Python安装目录下运行。
Yes
2 1000道Python题库系列分享二(48道)
2.1 表达式int('11111', 2)的值为__________。
In [210]: int? Init signature: int(self, /, *args, **kwargs) Docstring: int(x=0) -> integer int(x, base=10) -> integer Convert a number or string to an integer, or return 0 if no arguments are given. If x is a number, return x.__int__(). For floating point numbers, this truncates towards zero. If x is not a number or if base is given, then x must be a string, bytes, or bytearray instance representing an integer literal in the given base. The literal can be preceded by '+' or '-' and be surrounded by whitespace. The base defaults to 10. Valid bases are 0 and 2-36. Base 0 means to interpret the base from the string as an integer literal. >>> int('0b100', base=0) 4 Type: type
# binary 0b or 0B print("For 1010, int is:", int('1010', 2)) print("For 0b1010, int is:", int('0b1010', 2)) # octal 0o or 0O print("For 12, int is:", int('12', 8)) print("For 0o12, int is:", int('0o12', 8)) # hexadecimal print("For A, int is:", int('A', 16)) print("For 0xA, int is:", int('0xA', 16))
此题为:base=2, 1+2+4+8+16=31
2.2 表达式chr(ord('D')+2)的值为__________。
In [253]: ord? Signature: ord(c, /) Docstring: Return the Unicode code point for a one-character string. Type: builtin_function_or_method In [255]: chr? Signature: chr(i, /) Docstring: Return a Unicode string of one character with ordinal i; 0 <= i <= 0x10ffff. Type: builtin_function_or_method
2.3 简单解释Python基于值的内存管理模式。
Python采用的是基于值得内存管理方式,在Python中可以为不同变量赋值为相同值,这个值在内存中只有一份,多个变量指向同一个内存地址; Python具有自动内存管理功能,会自动跟踪内存中所有的值,对于没有任何变量指向的值,Python自动将其删除。
2.4 简单解释运算符/和//的区别。
/普通真除法,//取整数。
2.5 运算符%__________(可以/不可以)对浮点数进行求余数操作。
Yes
2.6 一个数字5__________(是/不是)合法的Python表达式。
Yes
2.7 判断对错:在Python 3.x中,内置函数input()把用户的键盘输入一律作为字符串返回。
Yes
2.8 在Python中关键字_________表示空类型。
None
2.9 列表、元组、字符串是Python的___有序_____(有序、无序?)序列。
2.10 查看变量类型的Python内置函数是__________。
type
2.11 查看对象内存地址的Python内置函数是__________。
id()
2.12 以3为实部4为虚部,Python复数的表达形式为_________或__________。
3+4j, (3+4J)
2.13 Python运算符中用来计算整商的是_______//___。
2.14 Python运算符中用来计算集合并集的是_____|_____。
2.15 Python运算符中用来计算集合差集的是______-____。
2.16 Python运算符中用来计算集合交集的是_______&___。
2.17 使用运算符测试集合A是否为集合B的真子集的表达式可以写作__A<B_______。
2.18 __del______命令既可以删除列表中的一个元素,也可以删除整个列表或其他任意类型的Python对象。
2.19 表达式int('123', 16)的值为__________。
2.20 表达式int('123', 8)的值为__________。
2.21 表达式int('123')的值为______123___。
2.22 表达式int('101',2)的值为____101,2_____。
2.23 表达式abs(-3)的值为______3___。
2.24 Python 3.x语句print(1, 2, 3, sep=':')的输出结果为__________。
2.25 Python 3.x语句print(1, 2, 3, sep=',')的输出结果为__________。
2.26 表达式int(4**0.5)的值为_2________。
2.27 表达式8 ** (1/3)的值为___2.0______。
2.28 Python内置函数___len()_____可以返回列表、元组、字典、集合、字符串以及range对象中元素个数。
2.29 Python内置函数___max()_____用来返回序列中的最大元素。
2.30 Python内置函数______min()__用来返回序列中的最小元素。
2.31 Python内置函数_____sum()___用来返回数值型序列中所有元素之和。
2.32 已知x = 3,那么执行语句x += 6之后,x的值为__9_______。
2.33 表达式13 / 4的值为_____3.25____。
2.34 表达式13 // 4的值为___3______。
2.35 表达式-13 // 4的值为___-4______。
2.36 表达式3 ** 2的值为___9______。
2.37 表达式chr(ord('a')-32) 的值为__________。
2.38 表达式abs(3+4j) 的值为___5.0______。
2.39 表达式16 ** 0.5的值为_4________。
2.40 表达式type({3})的值为__________。
set
2.41 表达式type({3:3})的值为__________。
dict
2.42 表达式isinstance('Hello world', str)的值为__________。
True
2.43 表达式isinstance('abc', int)的值为__________。
False
2.44 表达式isinstance(4j, (int, float, complex))的值为__________。
True
2.45 表达式isinstance('4', (int, float, complex))的值为__________。
False
2.46 表达式type(3) in (int, float, complex)的值为__________。
True
2.47 表达式type('3') in (int, float, complex)的值为__________。
False
2.48 表达式type(3) == int的值为__________。
True
3 1000道Python题库系列分享三(30道)
2.49 判断对错:已知x = 3,那么赋值语句x = 'abcedfg'是无法正常执行的。
No
2.50 判断对错:Python变量使用前必须先声明,并且一旦声明就不能在当前作用域内改变其类型了。
No
2.51 判断对错:Python不允许使用关键字作为变量名,但是允许使用内置函数名作为变量名,不过这会改变函数名的含义,所以不建议这样做。
Yes
2.52 判断对错:在Python中可以使用if作为变量名。
No
2.53 判断对错:在Python 3.x中可以使用中文作为变量名。
Yes
2.54 判断对错:Python变量名必须以字母或下划线开头,并且区分字母大小写。
Yes
2.55 判断对错:加法运算符可以用来连接字符串并生成新字符串。
Yes
2.56 判断对错:x = 9999**9999这样的语句在Python中无法运行,因为数字太大了超出了整型变量的表示范围。
No
2.57 判断对错:3+4j不是合法的Python表达式。
No
2.58 判断对错:0o12f是合法的八进制数字。
No
2.59 判断对错:只有Python扩展库才需要导入以后才能使用其中的对象,Python标准库不需要导入即可使用其中的所有对象。
No
2.60 判断对错:在Python中0xad是合法的十六进制数字表示形式。
Yes
2.61 判断对错:4j 是合法Python数字类型。
Yes
2.62 判断对错:Python使用缩进来体现代码之间的逻辑关系,对缩进的要求非常严格。
Yes
2.63 判断对错:Python代码的注释只有一种方式,那就是使用#符号。
No
2.64 判断对错:放在一对三引号之间的任何内容将被认为是注释。
No
2.65 判断对错:尽管可以使用import语句一次导入任意多个标准库或扩展库,但是仍建议每次只导入一个标准库或扩展库。
Yes
2.66 判断对错:为了让代码更加紧凑,编写Python程序时应尽量避免加入空格和空行。
No
2.67 判断对错:在Python 3.5中运算符+不仅可以实现数值的相加、字符串连接,还可以实现列表、元组的连接和集合的并集运算。
No
2.68 判断对错:在Python中可以使用 for 作为变量名。
No
2.69 判断对错:在Python中可以使用 id 作为变量名,但是不建议这样做。
Yes
2.70 判断对错:一个数字5也是合法的Python表达式。
Yes
2.71 判断对错:执行语句from math import sin之后,可以直接使用sin()函数,例如 sin(3)。
Yes
2.72 判断对错:一般来说,Python扩展库没有通用于所有版本Python的,安装时应选择与已安装Python的版本对应的扩展库。
Yes
2.73 判断对错:Python变量名区分大小写,所以student和Student不是同一个变量。
Yes
2.74 判断对错:在Python 3.x中reduce()是内置函数。
No
2.75 判断对错:如果只需要math模块中的sin()函数,建议使用from math import sin来导入,而不要使用import math导入整个模块。
Yes
2.76 判断对错:表达式pow(3, 2) == 3 ** 2的值为True。
Yes
2.77 判断对错:已知x = 3,那么执行语句x+=6之后,x的内存地址不变。
No
2.78 判断对错:安装Python扩展库时只能使用pip工具在线安装,如果安装不成功就没有别的办法了。
No
4 1000道Python题库系列分享四(40道)
3.1 为什么应尽量从列表的尾部进行元素的增加与删除操作?
函数指针是增加的
3.2 Python 3.x的range()函数返回一个_____________。
iterator
3.3 编写程序,生成包含1000个0到100之间的随机整数,并统计每个元素的出现次数。
import defaults dictionary_stat = defaults.default_dict()
3.4 表达式
[3] in [1, 2, 3, 4]
的值为___________。
False
3.5 编写程序,用户输入一个列表和2个整数作为下标,然后使用切片获取并输出列表中介于2个下标之间的元素组成的子列表。例如用户输入[1, 2, 3, 4, 5, 6]和2,5,程序输出[3, 4, 5, 6]。
a = [1, 2, 3, 4, 5, 6] begin = input() end = input() a[begin:end+1]
3.6 列表对象的sort()方法用来对列表元素进行原地排序,该函数返回值为________。
None
3.7 列表对象的__________方法删除首次出现的指定元素,如果列表中不存在要删除的元素,则抛出异常。
remove()
3.8 假设列表对象aList的值为[3, 4, 5, 6, 7, 9, 11, 13, 15, 17],那么切片aList[3:7]得到的值是_____________________。
[6, 7, 9, 11]
3.9 设计一个字典,并编写程序,用户输入内容作为“键”,然后输出字典中对应的“值”,如果用户输入的“键”不存在,则输出“您输入的键不存在!”
d={"a":1,"b":2} key = input() d.get(key,"key not existed")
3.10 编写程序,生成包含20个随机数的列表,然后将前10个元素升序排列,后10个元素降序排列,并输出结果。
import numpy as np a = np.random.randn(20) print(sorted(a[:10])) print(sorted(a[10:],reverse=True))
3.11 在Python中,字典和集合都是用一对___nil_______作为界定符,字典的每个元素有两部分组成,即___key___和____value_____,其中__key____不允许重复。
3.12 使用字典对象的_items()_______方法可以返回字典的“键-值对”,使用字典对象的____keys()_______方法可以返回字典的“键”,使用字典对象的__values()______方法可以返回字典的“值”。
3.13 假设有列表a = ['name', 'age', 'sex']和b = ['Dong', 38, 'Male'],请使用一个语句将这两个列表的内容转换为字典,并且以列表a中的元素为“键”, 以列表b中的元素为“值”,这个语句可以写为_____________________。
dict(zip(a,b))
3.14 假设有一个列表a,现要求从列表a中每3个元素取1个,并且将取到的元素组成新的列表b,可以使用语句________________。
a = [3, 4, 5, 6, 7, 9, 11, 13, 15, 17] b = a[::2]
3.15 使用列表推导式生成包含10个数字5的列表,语句可以写为__________________。
[5 for _ in range(10)]
3.16 ___________(可以、不可以)使用del命令来删除元组中的部分元素。
No
3.17 表达式[1, 2, 3]*3的值为______________________。
[1,2,3,1,2,3,1,2,3]
3.18 表达式list(map(str, [1, 2, 3]))的值为__________。
['1','2','3']
3.19 语句x = 3==3, 5执行结束后,变量x的值为__________。
(True, 5)
3.20 已知x = 3,并且id(x)的返回值为496103280,那么执行语句x += 6之后,表达式id(x) == 496103280的值为__________。
False
3.21 已知x = 3,那么执行语句x *= 6之后,x的值为__________。
18
3.22 表达式3 in [1, 2, 3, 4]的值为__________。
True
3.23 使用列表与整数的乘法生成包含10个数字5的列表,可以写为__________。
[5] * 10
3.24 任意长度的非空列表、元组和字符串中最后一个元素的下标为__________。
-1
3.25 表达式list(range(1, 10, 3))的值为__________。
[1,4,7]
3.26 表达式list(range(10, 1, -3))的值为__________。
[10, 7, 4]
3.27 表达式list(range(5))的值为________________。
[0,1,2,3,4]
3.28 已知a = [1, 2, 3]和b = [1, 2, 4],那么
id(a[1])==id(b[1])
的执行结果为True_________。
3.29 切片操作list(range(6))[::2]执行结果为__________。
[0, 2, 4]
3.30 使用切片操作在列表对象x的开始处增加一个元素3的代码为__________。
x[0:0] = [3]
3.31 语句sorted([1, 2, 3], reverse=True) == reversed([1, 2, 3])执行结果为__________。
False
3.32 表达式sorted([111, 2, 33], key=lambda x: len(str(x)))的值为________________。
[2, 33, 111]
3.33 表达式sorted([111, 2, 33], key=lambda x: -len(str(x)))的值为__________。
[111, 33, 2]
3.34 表达式max([111, 22, 3], key=str)的值为__________。
3
3.35 语句x = (3,)执行后x的值为__________。
(3,)
3.36 语句x = (3)执行后x的值为__________。
3
3.37 已知x=3和y=5,执行语句 x, y = y, x 后x的值是__________。
5
3.38 可以使用内置函数_________查看包含当前作用域内所有全局变量和值的字典。
globals()
3.39 可以使用内置函数_________查看包含当前作用域内所有局部变量和值的字典。
locals()
3.40 字典中多个元素之间使用___,______分隔开,每个元素的“键”与“值”之间使用______:___分隔开。
5 1000道Python题库系列分享五(40道)
3.43 x = ?
x = {1:2} x[2] = 3
3.44
{1,2,3,4} - {3,4,5,6}
3.46
[x for x in range(100) if x%13 == 0]
3.47
x = [1,2,3,4]
3.48
x[len(x):]=[1,2]
3.49
x = [1, 2, 3, 4, 1, 2] x.sort(reverse=True) In [314]: x Out[314]: [4, 3, 2, 2, 1, 1]
3.50
x = [1, 2, 3, 4, 1, 2] x = x.sort(reverse=True) In [314]: x Out[314]:
3.51
x = [1, 11, 111] x.sort(key=lambda x:len(str(x)), reverse=True) In [314]: x Out[314]: [111, 11, 1]
3.55
In [348]: list(map(list, zip(*[[1,2,3],[4,5,6]]))) Out[349]: [[1, 4], [2, 5], [3, 6]]
3.60
In [350]: list(enumerate([1,2])) Out[354]: [(0, 1), (1, 2)]
3.67
In [385]: x = [1,2,3,4,2] In [389]: x.remove(2) In [390]: x Out[390]: [1, 3, 4, 2] In [392]: x.remove? Docstring: L.remove(value) -> None -- remove first occurrence of value. Raises ValueError if the value is not present. Type: builtin_function_or_method
3.71
In [411]: range(10,20)[4] Out[416]: 14
3.74
In [420]: x=(3) In [425]: x Out[425]: 3
3.75
In [442]: x=(3,) In [443]: x Out[443]: (3,) In [444]: type(x) Out[445]: tuple In [446]: x*3 Out[450]: (3, 3, 3)
3.80
In [456]: x=[1,2]*2 In [457]: x.insert(1,4) In [463]: x Out[463]: [1, 4, 2, 1, 2] In [464]: x.insert? Docstring: L.insert(index, object) -- insert object before index Type: builtin_function_or_method
6 1000道Python题库系列分享六(40道)
3.82
In [465]: x=[[1]]*3 In [469]: x Out[470]: [[1], [1], [1]]
3.84
In [482]: y=x[:] In [484]: id(x) Out[485]: 140324141711560 In [486]: id(y) Out[490]: 140324142182536 In [491]: x==y Out[492]: True In [497]: id(x)==id(y) Out[497]: False
3.85
In [512]: sorted([13,1,237,89,100],key=lambda x:len(str(x))) Out[532]: [1, 13, 89, 237, 100]
3.90
In [540]: {1,2,3} < {3,4,5} Out[540]: False In [541]: {1,2,3} < {1,2,4} Out[541]: False
3.94
In [552]: random.randrange? Signature: random.randrange(start, stop=None, step=1, _int=<class 'int'>) Docstring: Choose a random item from range(start, stop[, step]). This fixes the problem with randint() which includes the endpoint; in Python this is usually not what you want. File: ~/.virtualenvs/graph/lib/python3.6/random.py Type: method
3.95
In [557]: random.sample? Signature: random.sample(population, k) Docstring: Chooses k unique random elements from a population sequence or set.
3.104
In [592]: x=[1,2] In [594]: y=x In [597]: y.append(3) In [610]: x Out[611]: [1, 2, 3]
3.114
x = [1,2] x.append([3]) In [631]: x Out[631]: [1, 2, [3]]
3.111
x = [[1,2,3],[4,5,6]] [[row[i] for row in x] for i in range(len(x[0]))] # 先从最右边起,i in range(3), 循环3次, row在x里面取两次,取[x[[0][0],x[[1],[0]]...
7 1000道Python题库系列分享七(30道)
3.121
In [666]: [1,2,3] == [1,3,2] Out[672]: False
3.129
In [11]: x=[1.0,2.0,3.0] In [12]: sum(x)/len(x) Out[12]: 2.0
3.130
In [13]: x={1:2,2:3,3:4} In [14]: sum(x) Out[14]: 6 In [16]: sum(x.values()) Out[16]: 9
3.138
In [25]: map(int, ['1','2']) Out[25]: <map at 0x11037ee80> In [26]: x,y=map(int, ['1','2']) In [27]: x Out[27]: 1 In [28]: y Out[28]: 2
3.140
In [35]: x=list(range(5)) In [36]: x.remove(3) In [37]: x Out[37]: [0, 1, 2, 4] In [42]: x.index(4) Out[42]: 3
3.141
In [43]: x Out[43]: [0, 1, 2, 4] In [44]: x.reverse() In [45]: x Out[45]: [4, 2, 1, 0] In [46]: x=x.reverse() In [47]: x Out[47: None
3.142
In [5]: x=[1,2,3,4,5,6] In [12]: x==x[:5]+x[5:] Out[16]: True In [17]: y = [1,2,3,4,5,6] In [22]: x==y Out[22]: True In [23]: id(x)==id(y) Out[26]: False In [27]: id(x)==id(x[:5]+x[5:]) Out[31]: False
8 1000道Python题库系列分享八(29道)
3.153
In [40]: '%c'%65 Out[46]: 'A' In [47]: str(65) Out[51]: '65'
3.157
In [56]: x='abcd' In [63]: y='abcde' In [67]: list(zip(x,y)) Out[70]: [('a', 'a'), ('b', 'b'), ('c', 'c'), ('d', 'd')] In [71]: [i==j for i,j in zip(x,y)] Out[76]: [True, True, True, True]
3.163
In [104]: list(str([3,4]))==[3,4] Out[104]: False In [105]: list(str([3,4])) Out[105]: ['[', '3', ',', ' ', '4', ']']
3.165
In [110]: sorted({'a':3,'b':9}) Out[123]: ['a', 'b'] In [124]: sorted({'a':3,'b':9}.values()) Out[126]: [3, 9]
3.174
In [199]: [1,2,3]>[1,3,2] Out[211]: False In [212]: [1]>[2] Out[218]: False In [219]: [1]<[2] Out[219]: True In [220]: [1,2,3]<[1,3,2] Out[220]: True
3.178
In [221]: type({}) Out[222]: dict In [223]: type({1}) Out[226]: set
9 1000道Python题库系列分享九(31道)
10 Hackerrank
10.1 string validator
s = "aA2" #In the first line, print True if has any alphanumeric characters. Otherwise, print False. print("True" if any(k.islower() or k.isnum() for k in s) else "False") #In the second line, print True if has any alphabetical characters. Otherwise, print False. print("True" if any(k.isalpha() for k in s) else "False") #In the third line, print True if has any digits. Otherwise, print False. print("True" if any(k.isdigit() for k in s) else "False") #In the fourth line, print True if has any lowercase characters. Otherwise, print False. print("True" if any(k.islower() for k in s) else "False") #In the fifth line, print True if has any uppercase characters. Otherwise, print False. print("True" if any(k.isupper() for k in s) else "False")
10.2 find a string
# Output the integer number indicating the total number of occurrences of the substring in the original string. # Sample Input string = 'ABCDCDC' sub_string = 'CDC' counter = 0 for i in range(0, len(string)): print(string[i:len(sub_string)+i]) if sub_string == string[i:len(sub_string)+i]: counter += 1
10.3 calendar-module
You are given a date. Your task is to find what the day is on that date. Input Format A single line of input containing the space separated month, day and year, respectively, in format. Constraints Output Format Output the correct day in capital letters. Sample Input date = '08 05 2015' Sample Output WEDNESDAY import calendar date = raw_input() #MM, DD, YYYY = map(int,raw_input().split()) #print calendar.day_name[calendar.weekday(YYYY,MM,DD)].upper() month, day, year = date.split() weekday = calendar.weekday(int(year), int(month), int(day)) weekday_dict = {0:"MONDAY", 1:"TUESDAY", 2:"WEDNESDAY", 3:"THURSDAY", 4:"FRIDAY", 5:"SATURDAY", 6:"SUNDAY"} print(weekday_dict[weekday])
10.4 python mutation
nput Format The first line contains a string, . The next line contains an integer , denoting the index location and a character separated by a space. Output Format Using any of the methods explained above, replace the character at index with character . Sample Input s = 'abracadabra' index, value = "5 k".split() l = list(s) l[int(index)] = value string = ''.join(l) print(string)
10.5 door mat
N = 7 M = 21 welcome = 'WELCOME' middle = '.|.' slash = '-' for i in range(1,N/2): s = M - i*3 print(i) print(slash*((s)/2) + middle*i + slash*((s)/2)) for i in range(N/2,N-1): if i == N/2: wel = (M - 7)/2 print(slash*wel + welcome + slash*wel) print(i)
10.6 leap year
add Febuary 29 The year can be evenly divided by 4, is a leap year, unless: The year can be evenly divided by 100, it is NOT a leap year, unless: The year is also evenly divisible by 400. Then it is a leap year. def is_leap(year): leap = False # Write your logic here if year % 4 == 0: if year % 100 == 0: if year % 400 == 0: leap = True return leap leap = False return leap leap = True return leap
10.7 find angle MBC
在直角三角形ABC, <B=90 degree,斜边上找到一中点M, 输入AB, BC 长度, 找MBC角度。 import math ab = float(raw_input()) bc = float(raw_input()) tang = ab / bc rad = math.atan(tang) print '{}°'.format(int(round(math.degrees(rad))))
10.8 Print the palindromic triangle of size N
n = 5 for i in range(1, n + 1): print((111111111//(10**(9-i)))**2)
10.9 list-comprehensions
print a list of all possible coordinates given by on a 3D grid where the sum of is not equal to . print [ [ i, j, o] for i in range( x + 1) for j in range( y + 1) for o in range(z + 1) if ( ( i + j + z) != n )]
10.10 timedelta
t1 = 'Sun 10 May 2015 13:54:36 -0700' t2 = 'Sun 10 May 2015 13:54:36 -0000' t1 = 'Sat 02 May 2015 19:54:36 +0530' t2 = 'Fri 01 May 2015 13:54:36 -0000' def time_delta(t1, t2): t1_p1 = datetime.datetime.strptime(t1[:-5],'%a %d %b %Y %H:%M:%S ') if t1[-5]=='+': t1_p1-=datetime.timedelta(hours=int(t1[-4:-2]),minutes=int(t1[-2:])) elif t1[-5]=='-': t1_p1+=datetime.timedelta(hours=int(t1[-4:-2]),minutes=int(t1[-2:])) t2_p1 = datetime.datetime.strptime(t2[:-5],'%a %d %b %Y %H:%M:%S ') if t2[-5]=='+': t2_p1-=datetime.timedelta(hours=int(t2[-4:-2]),minutes=int(t2[-2:])) elif t2[-5]=='-': t2_p1+=datetime.timedelta(hours=int(t2[-4:-2]),minutes=int(t2[-2:])) return str(abs(int(((t2_p1-t1_p1).total_seconds())))) delta = time_delta(t1, t2) print(delta)
10.11 text wrapper
string = 'bscnksbcjscksbcjksbckjdscsbdcbsdkjbcsdjcbsdjkcbsdkjbckjdsbjksd' max_width = 9 for i in range(0, len(string), max_width): print(string[i:i+max_width])
10.12 words score
n = 3 words = 'programming is awesome'.split() def is_vowel(letter): return letter in ['a', 'e', 'i', 'o', 'u', 'y'] def score_words(words): score = 0 for word in words: num_vowels = 0 for letter in word: if is_vowel(letter): print(letter) num_vowels += 1 if num_vowels % 2 == 0: score += 2 else: score += 1 print(num_vowels) return score print(score_words(words))
10.13 words capital
s = '1 w 2 r 3g' s = 'hello world lol' s = s.capitalize() l = [] for i,v in enumerate(s): if v != ' ' and s[i-1] == ' ': l.append(v.upper()) else: l.append(v) print(''.join(l))
10.14 calculate Karl Person's coefficient of correlation:
import numpy as np Physics_Scores = [15, 12, 8, 8, 7, 7, 7, 6, 5, 3] History_Scores = [10, 25, 17, 11, 13, 17, 20, 13, 9, 15] coef = np.corrcoef(Physics_Scores,History_Scores)[0][1] print('%.3f'%coef)
10.15 Bot saves princess
m = 3 grid = [ '---', '-m-', 'p--'] def displayPathtoPrincess(n,grid): #print all the moves here for row, rv in enumerate(grid): for col, cv in enumerate(rv): if cv == 'p': pos_x = row pos_y = col if pos_x > 0: for x in range(n-pos_x): print('DOWN') else: for x in range(n//2-pos_x): print('UP') if pos_y > 0: for y in range(n-pos_y): print('RIGHT') else: for y in range(n//2-pos_y): print('LEFT') m = input() grid = [] for i in xrange(0, m): grid.append(raw_input().strip()) displayPathtoPrincess(m,grid)
10.16 find the second smallest in nested list:
name = ['Harry', 'Berry', 'Tina', 'Akriti', 'Harsh'] score = [37.21, 37.21, 37.2, 37.2, 39] scores = dict(zip(name, score)) sorted_score = sorted(score) #print(min(scores, key=scores.get)) min_score = min(score) for _ in sorted_score: try: sorted_score.remove(min_score) except: break reversed_second_score = sorted_score[0] for name, s in scores.items(): # for name, age in list.items(): (for Python 3.x) if s == reversed_second_score: print(name)