Python刷题实战心得分享
Python 刷题笔记
本文记录了我在使用python刷题的时候遇到的知识点。
-
Python 刷题笔记
- 选择、填空题
-
基本输入输出
- sys.stdin 与input
- 运行脚本时传入参数
- Python语言基础
-
序列
- 列表
- 元组
- 字典
- 集合
- 选择与循环
-
字符串与正则表达式
- 字符串
- 正则
- 函数
- 面向对象
- 文件
- 异常
-
未分类
- 常见数学
- 性能评估
- numpy
- random
选择、填空题
-
Python3 中,布尔型只有 True 和 False 两个值,但它们的值本质上是 1 和 0,因此它们可以和数字进行数学运算。 正确 e.g.
True+1 == 2
-
在Python 3.X版本中,整除运算符产生的结果的数据类型可能为浮点型 正确 e.g.
33.2 // 3 == 11.2
-
要将3.1415926变成00003.14,如何进行格式化输出 "%08.2f"% 3.1415926
-
如果一句Python代码过长,可在行末写下符号"/",然后换行继续写 错误 分行是\或者()
-
字典的键可以是字符串常量也可以是整型常量,甚至还可以是列表 错误 列表不能作为字典的键
-
对于数字n,如果表达式 0 not in [n%d for d in range(2, n)]的值为True,则说明n是素数 正确
列出了所有的 n% 2~n的数字值 如果0不在就说明是素数 -
for循环结束后,循环变量i不存在,导致程序错误 错误!
i变量会是最后的值 -
表达式(i**2 for i in range(100))的结果是个元组 错误! 这是一个生成器 e.g.
(i**2 for i in range(10))
> for i in a:
... print(i)
0 1 4 9 16 25 ...
-
正则表达式'\d{5}'可用来检查字符串是否为5个数字字符组成的字符串 错误
可匹配5个数字的模式 但是一串可能有多个这样的子串? -
下面不能严格匹配YYYY-MM-DD这样日期格式的正则表达式是
A.\d{4}-\d{2}-\d{2}
B.[0-9]-[0-9]-[0-9]
C.[0-9]{4}-[0-9]{2}-[0-9]{2}
D.[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]
-
如果递归函数没有递归结束的语句,将会导致无穷递归,从而执行时出现“死循环” 错误
解释:递归是不断有函数进入栈,就像翻不完的书,不是死循环。 -
write方法用于把字符串写入文本文件并在最后添加换行符。 错误
-
如果首先以读模式打开一个文件,然后用seek方法把文件指针定位到文件的最后,再通过tell方法就可以得到一个文件的长度。 ** 正确**
-
异常 a undefined
def main():
a,b=eval(input())
try:
s=a/b
print(s)
except:
print("Divide 0!")main()
基本输入输出
待消化sys.stdout
sys.stdin
与input
sys.stdin.readlines()
or readline
前者一次读入多行,返回一个行列表,每个元素为输入的每行内容。
结束输入Linux: ctrl+d+enter
, Windows: ctrl+z+enter
import sys
#实现和input一样的功能
print("please input something\n")
s = sys.stdin.readline()
print(s, end='') #会读入\n, input不会
#文件作为整体的输入
for line in sys.stdin.readlines():
if not line:
break
else:
print (line)
C:\> python test.py < 123.txt
对输入结束的判断
sys.stdin
for lin in sys.stdin:
input()
try:
...
except EOFError:
pass
运行脚本时传入参数
sys.argv
argv[0] 是被调用的脚本的文件全名或全路径,argv[1]和一会的就是传入的数据
python filename.py 1,2,3 10
import sys
arg1 = sys.argv[1]
arg2 = sys.argv[2]
print(arg1, type(arg1), type(arg2))
1,2,3 str str
argparse
import argparse
parser = argparse.ArgumentParser(description='manual to this script')
parser.add_argument('--gpus', type=str, default = None)
parser.add_argument('--batch-size', type=int, default=32)
args = parser.parse_args()
print(args.gpus, type(args.gpus))
print(args.batch_size, type(args.batch_size))
D:\>python argv_test.py --gpus=0,1,2 --batch-size=20
0,1,2 <class 'str'>
20 <class 'int'>
Python语言基础
-
Python的浮点数常量也有十进制、二进制、八进制和十六进制等表示方式 X 十进制, 科学计数法
-
pow(x,y,z) -> x**y%z
-
type(1+8.0//4) == float 整除的结果取决于被除数和除数的类型
序列
列表
-
只能通过切片访问列表中的元素,不能使用切片修改列表中的元素 错误
-
两个列表相加
newlist = [x+y, for x,y in zip(list1, list2)]
-
现有列表 k = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0],那么Python3解释器执行 k.insert(-2, 'b')后执行k[-2]的结果是 9 b插入在9的位置 9 0 向后移动
元组
-
创建只包含一个元素的元组时,必须在元素后面加一个逗号,例如 a = (3,)正确
如果是a = (3) 或者a = ('a') 类型分别为int和str,只有一个元素的元组一定要加上,
-
列表可以是元组内的元素,可以改变元组内列表的值
字典
- 合并两个字典
a={'a':1,'b':2}
b={'a':3,'c':4}
a.update(b)
c = dict(a,**b)
- 字典中的“键”必须是可哈希对象,不能是列表,可以是元组,字符串,数值
集合
- 集合中的元素必须是不可变类型,即列表不可以是集合内的元素
选择与循环
-
a = range(100)
哪些操作合法:a[-3],a[2:13], a[::3]- a[a
原文地址:https://www.cnblogs.com/Zaaachary/p/12856054.html
- a[a
上一篇: 用C语言生成随机UUID的实例教程
下一篇: C#如何找到素数? 实现方法大揭秘