学的比较杂,忘得比较快。好记性不如烂键盘。
机试题
字符串最后一个单词的长度
Question;
Solution:
strip()
usage: strip()方法用于移除字符串头尾指定的字符(默认为空格)
|
|
split()
split()通过指定分隔符对字符串进行切片,如果参数num有指定值,则仅分隔 num 个子字符串.
usage; str.split(str=””, num=string.count(str))
str – 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
num – 分割次数。
len()
len() 方法返回对象(字符、列表、元组等)长度或项目个数。
uasge: len(s)
计算字符串个数
Question:
Solution:
最优的Solution:
lower()
lower() 方法转换字符串中所有大写字符为小写。
增加本题的鲁棒性。
count()
count() 方法用于统计字符串里某个字符出现的次数。可选参数为在字符串搜索的开始与结束位置。
usage:str.count(sub, start= 0,end=len(string))
sub – 搜索的子字符串
start – 字符串开始搜索的位置。默认为第一个字符,第一个字符索引值为0。
end – 字符串中结束搜索的位置。字符中第一个字符的索引为0。默认为字符串的最后一个位置。
明明的随机数
|
|
Solution:
牛逼解法:
randint()
使用了 random 模块的 randint() 函数来生成随机数
if的另外一种使用方法:
sort() & sorted()
sort 与 sorted 区别:
sort是应用在list上的方法,sorted可以对所有可迭代的对象进行排序操作。
list的sort方法返回的是对已经存在的列表进行操作,而内建函数sorted方法返回的是一个新的list,而不是在原来的基础上进行的操作。
多个变量赋值
|
|
Python允许你同时为多个变量赋值。例如:
以上实例,创建一个整型对象,值为1,三个变量被分配到相同的内存空间上。也可以为多个对象指定多个变量。例如:
以上实例,两个整型对象1和2的分配给变量 a 和 b,字符串对象 “john” 分配给变量 c。
set()
set() 函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等
Python 装饰器
from某乎:
装饰器本质上是一个Python函数,可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象,需求的场景:插入日志、性能测试、事务处理、缓存、权限校验。
例子:
比如写了很多个简单的函数,你想知道在运行的时候哪些函数在执行,只是想要很简单的在执行完毕之前给它打印一句“start”,应该是这样:
这样做是没有错,但是有想过没,难道想给每一个函数后面都加上那么一句吗?等运行完再一个个的删掉print不觉得麻烦吗?一个不麻烦,十个,一百个呢。
装饰器可以这么来:
其中,log函数就是装饰器,把装饰器写好后给需要装饰的函数前面加上@log就可以,装饰器节省了代码量,并且在函数不需要装饰的时候直接把@log去掉就可以,只需要用编辑器全局查找然后删除即可。
字符串分隔
Q:
S:
input和raw_input的区别
字符的时候可以用raw_input(),当然不怕麻烦也可以用input()手动加’’
int类型的时候最好用input()
进制转换
Q:
S:
Python进制函数
在python中没有char型,只有字符串类型,这样我们可能将char型转换为整型时极不方便,但是python已经提供了这些转换的内置函数。
python 中除了整型,其他进制的只能用字符串来表示:
任意进制–>十进制;int()
可以将二进制,八进制,十六进制转换成十进制整型:
整型–>字符;chr()
|
|
字符–>整型:ord()
|
|
十进制–>十六进制:hex()
|
|
十进制–>二进制:bin()
|
|
质数因子
Q:
Solution:
这个问题的意思,其实就是让你把输入的整数因式分解,只不过因子必须都是质数
例如:180 = 2 2 3 3 5;90 = 2 3 3 * 5;
range()
函数语法:range(start, stop[, step])
参数说明:
start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
xrange()
函数说明:用法与range完全相同,所不同的是生成的不是一个数组,而是一个生成器。
要生成很大的数字序列的时候,用xrange会比range性能优很多。
range会直接生成一个list对象,而xrange则不会直接生成一个list,而是每次调用返回其中的一个值。
所以xrange做循环的性能比range好,尤其是返回很大的时候,尽量用xrange吧,除非你是要返回一个列表。
取近似值
Q:
S:
float(input())
输入一个浮点型
int()
int()默认向下取整
向上取整函数math.ceil()
|
|
向下取整函数math.floor()
|
|
四舍五入函数round()
|
|
合并表记录
Q:
Solution:
提取不重复数
Q:
Solution:
|
|
Python翻转字符串(reverse string)
最简单的方法,将步长设置为-1
pow() 方法返回 xy(x的y次方) 的值
math 模块 pow() 方法的语法:
import math
math.pow( x, y )
内置的方法:pow(x,y)
按照特定=顺序排序
c.sort(key=a.index)
字符个数统计
Q:
Soulution:
字符–>整型:ord()
|
|
字符串反转
Q:
Solution:
[::-1]
步长为-1,表示为可迭代对象进行反转。
数字反转
Q:
Solution:
句子逆序
Q:
Solution:
越做越有感觉,能用一行代码完成的绝不写两行
str >>>list
|
|
list >>>str
|
|
join()
列表和元组转换为字符串则必须依靠join函数
join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串
语法:
join()方法语法:str.join(sequence)
参数:
sequence – 要连接的元素序列
返回值:
返回通过指定字符连接序列中元素后生成的新字符串
实例:
以下实例展示了join()的使用方法:
字符串的连接最长路径查找
Q:
Solution;
range()
老生常谈,注意其多行输入的方法
sorted()
sort 与 sorted 区别:
sort是应用在list上的方法,sorted可以对所有可迭代的对象进行排序操作。
list的sort方法返回的是对已经存在的列表进行操作,而内建函数sorted方法返回的是一个新的list,而不是在原来的基础上进行的操作。
求int型正整数在内存中存储时1的个数
Q:
Solution:
操作越来骚,Python大法好。
bin()
十进制转二进制
count()
统计字符串中出现特定符号的个数
本题即将输入的int型整数转为二进制,再转换为字符串统计“1”出现的个数
Python 质数判断
一个大于1的自然数,除了1和它本身外,不能被其他自然数(质数)整除(2, 3, 5, 7等),换句话说就是该数除了1和它本身以外不再有其他的因数。