Coding0618
CodeWars 第1天
第一题:Jaden Casing Strings
句子的每个单词首字母转为大写
1 | # My Solution |
1 | # Rank One Solution |
(str是字符串类型)
- ord(char):将字符串转为ASCII码;
chr(integer):将整型转为字符 - str.capitalize()
将字符串首字母转为大写字母 - str = sring.capwords(str)
将字符串中各个单词的首字母转为大写字母 - 列表/字典构建器
(本来以为是for的省略形式/高级用法)
(早就接触到了但是不知道该怎么用)1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26# 列表的基本用法
>>>[a*a for a in range(5)]
[0, 1, 4, 9, 16]
# 但是这个有点消耗内存,下面可以用多少取多少
>>>it = (a*a for a in range(5))
>>>next(it)
0
>>>next(it)
1
>>>next(it)
4
# 双重循环嵌套
>>>[a+b for a in 'abc' for b in 'xyz' ]
['ax', 'ay', 'az', 'bx', 'by', 'bz', 'cx', 'cy', 'cz']
# 字典(下面将原来的dict的key和value位置互换)
>>>dict = {'a':1,'b':2,'c':3}
>>>{a:b for b,a in dict.items()}
{1: 'a', 2: 'b', 3: 'c'}
#还可以直接把这个用在函数调用中
>>>a = 'I am here for you.'
>>>" ".join(w.capitalize() for w in a.split())
'I Am Here For You.'
第二题:Ones and Zeros
二进制列表[1,0,0,1]转十进制9
1 | # My Solution |
int函数
int(data, base)
base表示进制,于是可以这样写:
1 | def binary_array_to_number(arr): |
还看到了一种方法,太强了!简单分析了一下,有点递归思想。看不懂的可以把s = s * 2 + digit拆开:
s4 = s3 * 2 + d4 = (s2*2+d3) * 2 + d4 ···
1 | def binary_array_to_number(arr): |
另外学到了一招,算时间的,可以看到我的方法慢很多…
1 | >>> s1 = """ |
Others
reversed函数
传入元组、列表、字符串等,返回一个反转的迭代器。
打个栗子:
1 | >>>str = 'Beautiful' |
enumerate函数
返回索引和数据
打个栗子:
1 | >>>l = ['美丽', '可爱', '大方', '善良'] |
Daily Thoughts
你觉得简单的题,有人就只用一行代码解决。太强了!!绝了,我觉得我就是一纯Python小白!学到很多。
另,效率有点低,明天多刷几题~