2020.9.7第一次训练营的体会

查漏补缺
20200907

import decimal
from decimal import Decimal
##getcontext() 显示了 Decimal 对象的默认精度值是 28 位 (prec=28)。
print(True + True) # 2
print(True + False) # 1
print(True * False)

这个在做比赛的时候经常会 true的为1 ,False 为0

如 sub[‘label’] = sub[sub[‘result’]>0.5].astype(int)

for i in tqdm(range(0,n))
不包含n,从0开始

6. enumerate()函数

seasons = [‘Spring’, ‘Summer’, ‘Fall’, ‘Winter’]
lst = list(enumerate(seasons))
print(lst)

[(0, ‘Spring’), (1, ‘Summer’), (2, ‘Fall’), (3, ‘Winter’)]

lst = list(enumerate(seasons, start=1)) # 下标从 1 开始
print(lst)

[(1, ‘Spring’), (2, ‘Summer’), (3, ‘Fall’), (4, ‘Winter’)]

这个函数在k-fold里面经常用的到

continue

表示跳出下面的语句继续上面的循环

x = [i ** 2 for i in range(1, 10)]
print(x)

[1, 4, 9, 16, 25, 36, 49, 64, 81]

x = [[i, j] for i in range(0, 3) for j in range(0, 3)]
if for i 这个函数用来做特征以及用来筛选特征非常有用

还可以多个变量

还可以做交集、差集

#差集-交集
x = [i for i in data.columns if i not in A]
x = [i for i in data.columns if i in A]
python 面试基础

没有包含全部

摘自

python面试题–基础篇(80题) - 休耕 - 博客园

www.cnblogs.com
图标
为什么学习Python?

Python是一门优秀的综合语言, Python的宗旨是简明、优雅、强大,
在人工智能、云计算、金融分析、大数据开发、WEB开发、自动化运维、测试等方向应用广泛。

Python和Java、PHP、C、C#、C++等其他语言的对比?

Python:轻量级、易学、自由/开放源码软件、可移植性、支持面向对象、丰富的库、规范的代码。
Python:轻量级、易学、自由/开放源码软件、可移植性、支持面向对象、丰富的库、规范的代码。
Java:优点:开源性,功能强大,库多 缺点:编译速度 比较慢,不完全
PHP:优点:性能很强,配合简单,稳定,容易部署。 缺点:函数命名不规范,驼峰法和下划线,传参位置不一。
C: 优点:能操纵底层,能细粒度优化性能。 缺点:1、是面向过程的,2、运行时类型检查不可用,3、不提供命名空间功能,4、构 造函数和析构函数不可用。
C#: 优点: 强大的.NET Framework托管代码集合类,较简单的语言特性。WEB应用程序 开发速度快。 缺点:底层和高性能不合适,Windows平台以外支持有限。
C++: 优点:性能比较高,可进化型。 缺点: 难学,门槛高
简述解释型和编译型编程语言?

编译型语言:

编译型语言:
使用专门的编译器,针对特定的平台,将高级语言源代码一次性的编译成可被该平台硬件执行的机器码,并包装成该平台所能识别的可执行性程序的格式。
特点:
在编译型语言写的程序执行之前,需要一个专门的编译过程,把源代码编译成机器语言的文件.
执行方式:
源代码 ———> 编译(一次编译) ———>目标代码———>执行(多次执行)———>输出

解释型语言:
使用专门的解释器对源程序逐行解释成特定平台的机器码并立即执行。
特点:
解释型语言不需要事先编译,其直接将源代码解释成机器码并立即执行,所以只要某一平台提供了相应的解释器即可运行该程序。
执行方式:
源代码 ———> 解释器(每次执行都需要解释)———>输出

编译型: C c++, c#
解释型: python PHP ruby, java
6.位和字节的关系?

位:"位(bit)“是电子计算机中最小的数据单位。每一位的状态只能是0或1。
字节:8个二进制位构成1个"字节(Byte)”,它是存储空间的基本计量单位。1个字节可以储存1个英文字母或者半个汉字,换句话说,1个汉字占据2个字节的存储空间。
7.b、B、KB、MB、GB 的关系?

b 比特bit / 位
B——字节 1 B = 8b(8个bit/ 位)一个字节(byte)等于8位(bit)
KB——千比特 1 kB = 1024 B (kB - kilobajt)
MB——兆比特 1 MB = 1024 kB (MB - megabajt)
GB——吉比特 1 GB = 1024 MB (GB - gigabajt)
8.python递归的最大层数?

import sys
sys.getrecursionlimit() # 获取最大递归层数 默认是1000(0-999)
sys.setrecursionlimit(1200) # 设置最大递归层数
9.ascii、unicode、utf-8、gbk 区别?

python 编译器经常

#coding=utf-8

10.三元运算规则以及应用场景?

x = x+1 if x%2==1 else x
11.列举 Python2和Python3的区别?

Python2默认的字符编码是ASCII,默认的文件编码也是ASCII ;
python3默认的字符编码是unicode,默认的文件编码是utf-8。

在python2里,将string处理为原生的bytes类型。
python3把字符串的编码改成了unicode, 还把str和bytes做了明确区分, str就是unicode格式的字符,bytes是单纯二进制。

print语句没有了,取而代之的是print()函数。

在python 2.x中/除法整数相除的结果是一个整数,把小数部分完全忽略掉,浮点数除法会保留小数点的部分得到一个浮点数的结果。
在python 3.x中/除法不再这么做了,对于整数之间的相除,结果也会是浮点数。

捕获异常的语法由 except exc, var 改为 except exc as var。

Python 2.x 中反引号相当于repr函数的作用 Python 3.x 中去掉了这种写法,只允许使用repr函数

Py3.X去除了long类型,现在只有一种整型——int,但它的行为就像2.X版本的long

在 Python 2 中 有range()和xrange() ,一般使用xrange()创建迭代对象。
在 Python 3 中,range() 是像 xrange()那样实现,xrange()内置函数已经删除。
12.字符串、列表、元组、字典每个常用的5个方法?

字符串:索引、查找find(‘e’)、移除空白strip()、长度len()、替换replace(‘h’, ‘H’)
列表:切片[1:4]、追加append()、插入insert()、修改li[2]=“修改”、删除remove和pop
元组:索引ages[3]、切片name[0:2]、长度len()、创建tuple、删除del
字典:keys()返回包含字典所有key的列表;values()返回包含字典所有value列表;items()返回一个包含所有键值的列表;get()查看字典key对应的值;len()查看字典长度。
13.lambda表达式格式以及应用场景?

lambda函数就是可以接受任意多个参数(包括可选参数)并且返回单个表达式值得函数。
语法:lambda [arg1 [,arg2,…argn]]:expression
def calc(x,y):
return x*y

将上述一般函数改写为匿名函数:

lambda x,y:x*y

应用:1.lambda函数比较轻便,即用即仍,适合完成只在一处使用的简单功能。
     2.匿名函数,一般用来给filter,map这样的函数式编程服务
     3.作为回调函数,传递给某些应用,比如消息处理。
14.is和==的区别

==是python标准操作符中的比较操作符,用来比较判断两个对象的value(值)是否相等;

is也被叫做同一性运算符,这个运算符比较判断的是对象间的唯一身份标识,也就是id是否相同。
15.Python垃圾回收机制?

1、回收计数引用为0的对象,释放其占用空间
2、循环垃圾回收器。释放循环引用对象
16.Python的可变类型和不可变类型?

可变类型:list、dict、set、可变集合
不可变类型:string、int、float、tuple、不可变集合
17.列举常见的内置函数?

abs() # 取绝对值
dict() # 把数据转为字典
help() # 帮助
min() # 找出最小值
max() # 找出最大值
setattr() # 设置属性值
bool() # 判断True or False(bool(0)、bool(Flase)、bool([]))
all() # 可循环的数据集合每个元素bool()均为True;或者空列表也是True
any() # 任意一个值是True即返回True
dir() # 打印当前程序里的所有变量
hex() # 转换为16进制数
slice() # 提前定义切片规则
divmod() # 传入两个变量a、b,得到a//b结果和余数a%b
sorted() # 列表排序sorted(li)等同于li.sort() 用法:sorted(iterable, key)

ascii(2) # 只能返回ascii码
enumerate([3,2,13,4]) # 返回列表的索引
input(‘dasd’)
oct(10) # 转八进制
staticmethod() #
bin(10) # 转二进制

open() # 文件打开
str() # 转字符串
isinstance()
ord(‘a’) # 返回97,ascii码中’a’位置
chr(97) # 返回’a’,输入97位置返回ascii码对应字符
sum([1,4,5,-1,3,0]) # 计算列表求和

pow(100,2) # 返回x的y次方,10000
callable() # 查看函数是否可以调用,还可用于判断变量是否是函数
format()

vars() # 打印变量名和对应的值
locals() # 打印函数的局部变量(一般在函数内运行)
globals() # 打印全局变量

repr() # 显示形式变为字符串
compile() # 编译代码
complex() # 将一个数变为复数
‘’’

complex(3,5)
(3,5j)
‘’’

round(1.2344434,2) # 指定保留几位小数 输出1.23

delattr, hasattr, getattr, setattr # 面向对象中应用

hash() # 把一个字符串变为一个数字
memoryview() # 大数据复制时内存映射
set() # 把一个列表变为集合
‘’’

set([12,5,1,7,9])
{1, 5, 7, 9, 12}
18.filter、map、reduce的作用?

filter() # 将符合条件的值过滤出来
map(lambda x:x*x , [1,2,3,4,5]) # 根据提供的函数对指定序列做映射
reduce(function, iterable[, initializer]) # 对参数序列中元素进行累积
19.至少列举8个常用模块都有那些?

1、sys:用于提供对解释器相关的访问以及维护,并有很强的交互功能
2、time: 时间模块
3、os:用于提供操作系统模块
4、ashlib:用于加密相关的操作
5、random:生成随机变量
6、pickle:用于python特有的类和pthon的数据类型间进行转换
7、datetime:date和time的结合体
8、re:正则表达式模块
20.logging模块的作用?以及应用场景?

python的logging模块提供了标准的日志接口,你可以通过它存储各种格式的日志。

21.如何生成一个随机数?

random模块可以很容易生成随机数和随机字符串。

random.randint(1, 100) # 1-100之间取一个随机数
random.randrange(1, 100) # 1-100之间取一个随机数
randint&randrange区别:randint包含100,randrange不包含100!!!

string模块可以生成随机字符串

string.digits # 数字字符串 ‘0123456789’
string.ascii_letters # 字母字符串 ‘abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ’
string.ascii_lowercase # 小写字母字符串 ‘abcdefghijklmnopqrstuvwxyz’
string.ascii_uppercase # 大写字母字符串 ‘ABCDEFGHIJKLMNOPQRSTUVWXYZ’
string.punctuation # 特殊字符 ‘!"#$%&’()*+,-./:;<=>?@[\]^_`{|}~’
22.如何使用python删除一个文件?

os.remove() # 删除一个文件的方法

os.remove(‘atm_shopmall.zip’)
os.listdir()
[’.DS_Store’, ‘atm_shopmall’, ‘startMyPython3.0’]

学习体验:通过网站的新内容,例子和一些对于我们的新手学习Pathon的知识,所以这些知识我们可以有效地提升专业技术,第一次我通过例子线下练习,对着例子线下练习。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值