-
我理解的机器学习就是对研究问题提出一个模型预测,然后对这个模型进行数据的堆砌,用数据去训练计算机,得到符合数据规律概率比较大的函数,进而去用这个函数对以后的数据进行预测分析,得到令人满意的结果.
-
正则表达式是对字符串进行操作,匹配返回满足某种模式的字符串的一个特殊的字符序列.
-
正则表达式中的”.”:匹配任意字符,除了换行符,当re.DOTALL标记被指定时,则可以匹配包括换行符的任意字符。
-
“*”:匹配0个或多个的表达式.
-
“+”:匹配1个或多个的表达式.
-
“?”: 匹配0个或1个由前面的正则表达式定义的片段,非贪婪方式.
8.findall:在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果有多个匹配模式,则返回元组列表,如果没有找到匹配的,则返回空列表。
import re
result = re.findall(r'(\w+)=(\d+)', 'set width=20 and height=10')
print(result)
[('width', '20'), ('height', '10')]
9.search:扫描整个字符串并返回第一个成功的匹配
import re
line = "Cats are smarter than dogs";
searchObj = re.search( r'(.*) are (.*?) .*', line, re.M|re.I)
searchObj.group() : Cats are smarter than dogs
searchObj.group(1) : Cats
searchObj.group(2) : smarter
10.match:只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None
line = "Cats are smarter than dogs";
matchObj = re.match( r'dogs', line, re.M|re.I)
None
11.写出匹配手机号的正则表达式(手机号共 11 位,且以 13、14、15、18 开头)
12.python 和 C 语言的区别和优缺点,它们分别适用于什么场合?
1.python语言不需要预先编译,边解释边执行;而c语言需要预先编译成机器语言然后再执行,即c语言代码执行效率比python要高.
2.python更易于学习,编写和阅读,c语言语法比python更难.
3.c语言更适用于底层开发,直接与操作系统打交道;
python更适用于脚本编写,数据科学,机器学习方面的应用.
13.什么是面向对象(面向对象的特性),它与面向过程有什么区别?
将现实世界中的事物抽象化成对象,现实世界中的关系抽象化类,继承,帮助人实现对现实世界的抽象与数据建模.
面向过程针对的是分析问题所需要的步骤,而面向对象则是将问题抽象化为对象,分为几个不同的对象来处理问题
14.类、对象、实例、实例化之间的关系?
类为一个类型,对象即为万物;实例是根据类创建出来的一个一个对象,而类创建对象的过程就是实例化.
15.说明”
init
” 函数的作用,一定要有这个函数吗?
构造函数,在类实例化会自动调用,一般用于参数的初始化.
16.pandas读取sv 文件是什么格式:纯文本格式.
17.python 中,如何对字典、列表、字符串之间进行两两转换?
[’a’, ’b’, ’c’] ⇐⇒ ’abc’
k = [’a’, ’b’, ’c’], v = [1, 2, 3] ⇐⇒ {’a’: 1, ’b’: 2, ’c’: 3}
{’a’: 1, ’b’: 2, ’c’: 3} ⇐⇒ ’{”a”:1, ”b”:2, ”c”:3}’
1.‘’.join([’a’, ’b’, ’c’])
2.dict(zip(k,v))
3.str({’a’: 1, ’b’: 2, ’c’: 3})
18.请利用 matplotlib 编写一个程序,画出函数 y = x 2 + 18 的图像,并给图表和坐
标轴加上标题。
ax1 = plt.subplot(1,1,1)
x = np.linspace(1,10)
y = pow(x,2) + 18
ax1.plot(y,marker=r'.',color=u'black',linestyle='--',label='f(x)')
ax1.xaxis.set_ticks_position('bottom')
ax1.yaxis.set_ticks_position("left")
plt.xlabel("x")
plt.ylabel("f(x)")
plt.legend(loc='best')
plt.show()
19.素数排位:已知素数序列为 2、3、5、7、11、13、17、19、23、29⋯⋯,即素数
的第一个是 2,第二个是 3,第三个是 5⋯⋯那么,随便挑一个数,若是素数,能确定是
第几个素数吗?如果不是素数,则输出 0
n = int(input())
sum = 0
ans = []
for i in range(2,n+1):
for num in range(1,i+1):
if i%num == 0:
sum += 1
if sum==2:#判断素数
sum=0
ans.append(i)#将素数放在新列表中
else:
sum=0
if n in ans:
print(int(ans.index(n))+1)#打印出为第几个素数
else:
print(0)
20.画出函数 y 1 = sinx, y 2 = cosx, y 3 = tanx, y 4 = sinx 2 + cos2x 的图像, 其
中 x 的范围为 [1 : 4]。
要求:四个函数图像显示在同一个窗口且曲线用不同的颜色加以区分。
import matplotlib.pyplot as plt
import numpy as np
import math
plt.style.use('ggplot')
ax1 = plt.subplot(2,2,1)#两行两列
ax2 = plt.subplot(2,2,2)
ax3 = plt.subplot(2,2,3)
ax4 = plt.subplot(2,2,4)
x = np.linspace(1,4)#控制范围
y1,y2 = np.sin(x),np.cos(x)
y3,y4 = np.tan(x),np.sin(pow(x,2)) + np.cos(2*x)
ax1.plot(y1, marker=r'.', color=u'blue', linestyle='--',label='Blue')
ax2.plot(y2, marker=r'.', color=u'red', linestyle='--',label='Red')
ax3.plot(y3, marker=r'.', color=u'g', linestyle='--',label='Green')
ax4.plot(y4, marker=r'.', color=u'black', linestyle='--',label='Black')
ax1.xaxis.set_ticks_position('bottom')
ax1.yaxis.set_ticks_position('left')
plt.xlabel('X')
plt.ylabel('f(x)')
plt.legend(loc='best')
plt.show()
21.单词分组:第一行输入全部单词,第二行输入需排除的单词,编写程序,输出剩
余单词(排除时对英文单词不区分大小写,输出时须按原顺序和大小写)。
输入样例 1:
樱挑 榴莲 栗子 芒果 葡萄 草莓 荔枝 枣 青梅
葡萄 草莓 榴莲 枣 青梅
输出样例 1:
樱挑 栗子 芒果 荔枝
ans = input().split(' ')
delete = input().split(' ')
for i in range(len(delete)):
if delete[i] in ans:
ans.remove(delete[i])
print(" ".join(ans))
输入:樱桃 葡萄 苹果
苹果 樱桃
输出:葡萄