搜索引擎的核心技术架构,大体包括以下三块,*,是蜘蛛/爬虫技术;第二,是索引技术;第三是查询展现的技术; 当然,我不是搜索引擎的架构师,我只能用比较粗浅的方式来做一个结构的切分。以下是小编为你整理的自学python编程入门教程
先进行几个运算:
5/2*3+9
8*9-5/6
这两个算式,可以直接粘贴到python代码编译器里面,但是运行之后,没有输出结果。
其实,python已经运算了这个式子了,只不过没显示结果。
用print可以显示运算结果。
print(5/2*3+9)print(8*9-5/6)
如果我们想要看到一个完整的算式,需要把算式以字符串的形式返回。
print("5/2*3+9"+str(5/2*3+9))print("8*9-5/6"+str(8*9-5/6))
注意:
"5/2*3+9"就是一个字符串的形式,在英文输入法的双引号里面;
str(5/2*3+9)是对算式进行计算,并把计算结果转化为字符串;
+的作用是连接字符串。
基本运算
加减乘除的运算,和平常的一样:
print("5+6="+str(5+6))print("5/6="+str(5/6))print("5*6="+str(5*6))print("5-6="+str(5-6))
乘方运算2^100,在python里面,写为2**100:
print("2^100 = " + str(2**100))print("5^10 = " + str(5**10))
求余数,用%实现:
print("100除以5的余数是" + str(*5))print("100除以90的余数是" + str(*90))
注释的运用# 注释:不参与程序运行,作用是给给看代码的人一些提示。
# 我是一个大帅哥,这行是一行注释,#号后面的表示注释
"""
多行注释
多行注释
多行注释
"""
# 一般情况下注释都直接使用#号的形式
# 在正常开发中,三个引号对的注释形式一般是作为对整个文件的说明出现在文# 件的顶部
# 针对某一行代码的注释,可以放在代码语句的上面,也可以放在代码的后面
print(1801) # 系统提供的展示(打印,输出)功能
print(666) #
print() #默认以换行结尾
print(100-6) # 可以直接进行数学运算,打印结果就是运算结果
print(10086, 10+6) # 可以同时打印多个内容,多个内容之间用逗号隔开
print(1801, 3+6, 4+7) # 打印结果里,多个内容之间会默认有一个空格
# 单引号对和双引号对是等价的
print('**************分割符******************')
print('good.123我爱*') # 引号引起来的叫字符串,单个字符也是字符串
print('love',end=' ') # end=''设置打印结尾的内容,默认是换行(n)
print('****')
print('good morning', 666, '早上好', 4+6) # 字符串和数字可以混合打印
print('3+6') # '3+6'这是一个字符串,包含3个字符:3+6 不是数学运算
# 有些特殊的字符需要使用转义字符(),转义字符本身也是特殊字符print('我n的'身高'是"18\0')print(r'我n的'身高'是"18\0') # 如果字符串以r开头,那么这个字符串中所# 有的转义字符全部失效。print('good' * 3) # 字符串可以和数字相乘,得到重复的字符串print('*'*10, '分割符', '*'*10)print('good' + 'morning', 666) # 字符串可以和字符串相加,得到一个拼接的字符串print('*'*20 + '分割符' + '*'*20)
请勿将代码复制直接使用,可能出现中英文格式错误,请读者手打练习。
导入numpy模块
在python IDE导入numpy模块,我用的是自带解释器
>>> import numpy as np
>>> np.array([1,2,3,4]) #通过array函数创建数组
array([1, 2, 3, 4])
>>> c=np.array([[1,2,3,4],[4,5,6,7],[7,8,9,10]])#二维数组,第0轴长度为3,第1轴长度为4,也就分别相当于矩阵的行数和列数
>>> c
array([[ 1, 2, 3, 4],
[ 4, 5, 6, 7],
[ 7, 8, 9, 10]])
>>> c.shape#数组的形状可以通过其shape 属性获得,它是一个描述数组各个轴长度的元组(tuple)
(3L, 4L)
3
>>> np.arange(0,1,0.1)#arange()函数指定了开始值、终值和步长创建等差数列的一维数组,注意不包含终值。
array([ 0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9])
4
>>> np.linspace(0,1,10)#指定开始值、终值和元素个数创建等差数列的一维数组,通过endpoint参数指定是否包含终值,默认为Ture,即包含终值
array([ 0. , 0.11111111, 0.22222222, 0.33333333, 0.44444444,
0.55555556, 0.66666667, 0.77777778, 0.88888889, 1. ])
>>> np.logspace(0,2,5)#logspace和linspace类似,区别在于它创建的是等比数列,起始值为10^0,而终值为10^2
array([ 1. , 3.16227766, 10. , 31.6227766 , 100. ])
蜘蛛,也叫爬虫,是将互联网的信息,抓取并存储的一种技术实现
搜索引擎的信息收录,很多不明所以的人会有很多误解,以为是付费收录,或者有什么其他特殊的提交技巧,其实并不是,搜索引擎通过互联网一些公开*的网站,抓取内容,并分析其中的链接,然后有选择的抓取链接里的内容,然后再分析其中的链接,以此类推,通过有限的入口,基于彼此链接,形成强大的信息抓取能力。
有些搜索引擎本身也有链接提交入口,但基本上,不是主要的收录入口,不过作为创业者,建议了解一下相关信息,百度,google都有站长平台和管理后台,这里很多内容是需要非常非常认真的对待的。
反过来说,在这样的原理下,一个网站,只有被其他网站所链接,才有机会被搜索引擎抓取。如果这个网站没有外部链接,或者外部链接在搜索引擎中被认为是垃圾或无效链接,那么搜索引擎可能就不抓取他的页面。
分析和判断搜索引擎是否抓取了你的页面,或者什么时候抓取你的页面,只能通过服务器上的访问日志来查询,如果是cdn就比较麻烦。 而基于网站嵌入代码的方式,不论是cnzz,百度统计,还是google analytics,都无法获得蜘蛛抓取的信息,因为这些信息不会触发这些代码的执行。
一个比较推荐的日志分析软件是awstats。
在十多年前,分析百度蜘蛛抓取轨迹和更新策略,是很多草根站长每日必做的功课,比如现在身价几十亿的*80后上市公司董事长,当年在某站长论坛就是以此准确的分析判断而封神,很年轻的时候就已经是站长圈的一代偶像。