当前位置:博客首页 > Python > 正文

03 python基础知识

作者: Jarvan 分类: Python 发布时间: 2018-09-07 17:03 百度已收录

一、为什么学python?怎么学?学到什么程度?

二、什么是交互式解释器?

Cpython/Ipython/Pypy

三、什么是算法?

四、什么是数据类型

字符串(str)、布尔(bool)、数字(整数、浮点数)、列表(list,用[ ])、元组(tuple,用())、字典(dict,用{})、集合(set)

五、什么是表达式?什么是语句?

表达式是指“某事“,语句是“做某事”

常见语句:if/for/while/try/def/def/class/import…

  • for语句,例子:将keyword中的数据逐条打印出来

for line in open(‘keyword’):

print line.strip()

Python strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。 注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符

更多参考:http://www.runoob.com/python/att-string-strip.html

 

  • if语句,例子:将keyword中的数据包含“公司”的打印出来

for line in open(‘keyword’):

if ‘公司’ in line:

print line.strip()

 

  • while语句,例子,n=2,如果n<10,则将n打印出来(结果是n不断循环出现)

for line in open(‘keyword’):

if ‘公司’ in line:

print line.strip()

六、什么是函数?

自定义函数(def)、内置函数、匿名函数(lambda)

注释:’’’需要注释的内容’’’    #是整行注释

  • 自定义函数及传参,例子:自定义函数test01,如果a=12,b=23,计算a+b,并返回值

方法1:

def test01():

      a =12

      b=23

      num=a+b

print test01()

方法2:

def test01(a,b):

        num = a + b

        return num

print test01(12,23)

  • 内置函数,如open等可网上自查自学

text = open(‘keyword’).read()

print text

read() 方法用于从文件读取指定的字节数,如果未给定或为负则读取所有。

七、什么是模块

  • 模块举例:urllib2模块,使用此模块打印某页面的源代码

import urllib2

html = urllib2.urlopen(‘https://www.cnblogs.com/zyq-blog/p/5606760.html’).read()

print html

  • 模块+自定义函数:打印百度搜索“防腐木”的serp的源代码

import urllib2

def gethtml(url):

       html = urllib2.urlopen(url).read()

       return html

print gethtml(‘http://www.baidu.com/s?wd=防腐木’)

group()在正则表达式中用于获取分段截获的字符串

  • 模块+自定义函数:获取沛迪官网的title

import urllib2,re

def gethtml(url):

html = urllib2.urlopen(url).read()

return html

def search(req,html):

text = re.search(req,html)

if text:

        data = text.group(1)

else:

        data = ‘no’

return data

print search(‘<title>*?>(.*?)</title>’,gethtml(‘http://www.168pd.com/’))

 

re.search函数会在字符串内查找模式匹配,只到找到第一个匹配然后返回,如果字符串没有匹配,则返回None。

正则举例:%s/ */ /g的含义

%表示在所有行中进行处理
s表示查找、替换功能,格式是:s/查找的内容/替换的内容/选项
*表示查找0个或者多个空格
//表示替换为空
g表示全部替换
该命令的功能是替换所有的空格

  • 模块+自定义函数+循环语句:将keyword文件中的所有包含公司的词在百度中查询并打印他们的title

[cc lang=”python”] import urllib2,re

def gethtml(url):
html = urllib2.urlopen(url).read()
return html

def search(req,html):
text = re.search(req,html)
if text:
data = text.group(1)
else:
data = ‘no’
return data
for line in open(‘keyword’):
if ‘公司’ in line:
print search(‘<title>*?>(.*?)</title>’,gethtml(‘http://www.baidu.com/s?wd=%s’ % line.strip()))[/cc]

%s 是占位符

八、如何运行py脚本

python 文件名.py

九、中文编码

Python默认脚本文件都是ANSCII编码,所以如果Python脚本包含中文,则需要在开头指定编码声明,通常为:coding:urt-8

因为ANSCII编码不支持中文,所以python文件中包含中文且不指定编码声明会报错

Python出现乱码的常见原因:读取数据的编码格式与系统本地编码格式不一致造成的

可以用来查看网页编码类型,linux下默认大都是utf-8,windows下python默认是gbk的

查看网页真实编码方法,F12→console→左下角输入document.charset

  • 将gbk编码的网页转为utf8的,以防止乱码:例如将com网页代码打印出来(163的是gbk,要防止乱码)

方法一

import urllib2

html = urllib2.urlopen(‘http://www.163.com’).read().decode(‘gbk’).encode(‘utf-8’)

print html

方法二

import urllib2

def encode(url):

  html = urllib2.urlopen(url).read().decode(‘gbk’).encode(‘utf-8’)

  return html

print encode(‘http://www.163.com’)

发表评论