python简介

python主流版本:2.x 3.x

版本间的选择:人数最多的2.x 目前的趋势是3.x

语言的选择:C/C++/C# Java/VB/PHP python

Python的优点:

  • python比C还要简单
  • python的功能特别强大:编写界面程序、编写服务器项目、硬件编程(树莓派)、数据挖掘、数据分析、机器学习、人工智能

  • 国家支持:山东、北京 小学课本中添加python信息技术;高考要添加python考试;全国计算机等级考试 要添加python

  • 大数据:数据来源可以通过python代码获取

IT行业的优势与劣势:高薪、猝死、脖子疼、肩膀疼、腰疼、眼睛疼、脱发

环境搭建

IDE介绍

基本语法

print语句

# -*- coding: utf-8 -*-
# print  打印任何东西
# 注释:对代码的解释说明
print(20)
print(3.14)
print('张三')
print("李四")
print('''王五''')
print("""赵六""")
# I'm lisi.
# 注意:如果打印带有单引号的内容,尽量不用' '
# 如果非要这么用,可以在内容的'前面加\
print('I\'m lisi')
print("I'm lisi")

# he say, "hello world"
print('he say, "hello world" ')

# I'm lisi,i say "hello world"
print('''I'm lisi,i say "hello world"''')
# print("""I'm lisi,i say "hello world"""")

# print语法特点
# 1. 打印普通内容,单双引号均可,推荐单引号
# 2. 打印带有单引号的内容,推荐双引号
# 3. 打印带有双引号的内容,推荐单引号
# 4. 打印带有单和双引号的内容,推荐三单引号或三双引号
# 5. 特殊情况,也可以在内容的单/双引号前面加\来表示转义
print('I\'m')
print("I\"m")



# 同时打印张三和李四
print('张三','李四')
# sep=seprate
print('张三','李四', sep='--')

print('a', 'b', end='====')
print('c', 'd')


# 打印:我叫'张三' 今年20岁  性别男
print('我叫\'张三\' 今年20岁  性别男')
print("我叫'张三' 今年20岁  性别男")
print('''我叫'张三' 今年20岁  性别男''')
print("""我叫'张三' 今年20岁  性别男""")

print("我叫'张三'", '今年20岁', '性别男')



# 计算 30 + 40
print(30+40)

num1 = '30'
num2 = '40'
print(num1+num2)

# 从input获取的内容都是字符串
num1 = input('请输入第一个数字')
num2 = input('请输入第二个数字')
num1 = int(num1)
num2 = int(num2)
print(num1+num2)


name1 = input('请输入数字')
name2 = input('请输入数字')
name1 = int(name1)
name2 = int(name2)
print(name1,'-',name2,'=',name1-name2)
Num = input('hello 请输入一个数字')
Num2 = input('你好请输入数字')
Num =int(Num)
Num2 =int(Num2)

print(Num+Num2)

往下所有代码仅作了解,体会python语法和代码结构

# -*- coding: utf-8 -*-
# 存储网页到本地
# import:导入  request:请求  url:网址
# get:获取 content:内容
import requests
# 404  500
response = requests.get('http://www.baidu.com')
f = open("1.html", "wb")
f.write(response.content)
f.close()

# 下载图片
img_response = requests.get("http://img.ivsky.com/img/tupian/li/201712/10/dongtiandexuejingtupian.jpg")
f = open("1.jpg", "wb")
f.write(img_response.content)
f.close()

# 批量下载10个网页
for page in range(1, 11):
    a = requests.get("http://www.ivsky.com/tupian/ziranfengguang/index_%s.html"%page)
    f = open("%s.html"%page, "wb")
    f.write(a.content)
    f.close()

# 练习:保存python贴吧的前100页到电脑中
# 答案
for page in range(1,11):
    b= requests.get("http://tieba.baidu.com/f?kw=python&ie=utf-8&pn=%s"%(page-1)*50)
    f= open("b/ba%s.html"%page,"wb")
    f.write(b.content)
    f.close()
# -*- coding: utf-8 -*-
# 爬取天堂图片网前10页的所有图片
import requests
from lxml import etree
for c2 in range(1,11):
    a = requests.get("http://www.ivsky.com/tupian/dongwutupian/index_%s.html"%c2)

    b = etree.HTML(a.content)
    c = b.xpath('//img/@src')
    for c1 in c:
        tupian = c1.split('/')[-1]
        img_response = requests.get(c1)
        f = open(tupian, "wb")
        f.write(img_response.content)
        f.close()

必备单词

coding 编码
import 导入
from 来自,从
print 打印
name 姓名
request 请求
get 获取
split 分割 
content 内容
in 在...里
response 响应
file 文件,一般简写为f
path 路径
open 打开
write 写,一般简写为w
read 读,一般简写为r
close 关闭
# -*- coding: utf-8 -*-
# print 输出/打印
# view 视图  panes 面板  dir=Directory文件夹
# print("hello world")
# print("hello", "world", "zhangsan")


# input 输入
# 一般,=号左边的统称“变量”==》“变化的量”
# name = input("请输入你的名字:")
# print("用户输入的名字是", name)


# 模拟简单的学生信息录入系统
# name 姓名   age 年龄  phone 手机  ID 学号
# name = input("请输入你的姓名 ")
# age = input("请输入你的年龄 ")
# phone = input("请输入你的手机号 ")
# ID = input("请输入你的学号")
# print(name, age, phone ,ID)

# 循环  关键字  for  while
# for 变量1 in 可迭代对象:
#     执行自己的相关代码

for a in range(10):
    print("hello world", a)
    print("abc")
print("def")


# 模拟输入10个学生信息并打印
#for b in range(10):
#    name = input("请输入姓名")
#   age = input("请输入年龄")
#    ID = input("请输入学号")
#    print(name, age, ID)


# 条件判断 if  else
# 如果 年龄 大于0并且小于100
    # 年龄没问题
# 否则 
    # 年龄输入有问题

#age = input("请输入年龄")
#age = int(age)
#if 0 < age < 100:
#    print("年龄ok")
#else:
#    print("年龄不ok")
#score = input("请输入你的成绩")
#score = float(score)
#if 60 <= score:
#    print("及格")
#else:
#    print("不及格")
#if 60 <=score <=150:
#    print("及格")
#elif 0 <=score <60:
#    print("不及格")
#else:
#    print("成绩录入错误")

score = input ("please input your score")
score = float(score)
if 90<=score<=100:
    print("学霸")
elif 70<=score<90:
    print("中等")
elif 60<=score<=70:
    print("良好")
elif 0<=score<60:
    print("不及格")


for score in [52,62,74,50]:
    print(score)   
    if 60<= score <=100:
        print("及格")
    else:
        print("不及格")
for name in ['张三','李四','王五','张飞']:
    if name.startswith("张"):
        print("张开头")
    else:
        print("其它")
# -*- coding: utf-8 -*-

# 列表 list
# 表示创建一个空列表
list1 = []
list2 = [1,2,3,4,5]
list3 = ['张三','李四','王五']
list4 = ['张三',5,3.14,'李四']
#列表中可以放任意元素,但是推荐盛放同一类型元素.


#向列表中添加元素
#append 表示拼接  object 对象
#通过对比三个输出语句 总结出一个结论,append默认将数据添加到列表最后
print(list3)
list3.append('老王')
print(list3)
list3.append(668)
print(list3)

#insert表示插入
#index表示索引,索引就是编号,编号就是数字,默认从0开始
list3.insert(2,888)
print(list3)
list3.insert(10,123)
print(list3)


#通过终端向列表中添加四个姓名,然后打印
list5=[]
for x in range(4):
    name = input('请输入姓名:')
    list5.append(name)
print(list5)
# -*- coding: utf-8 -*-
list1 = [1,2,3,4,5,3,7]
list2 = range(5)
print(list1)
print(list2)
#range本质就是列表,用来生成具有一定规律的列表
list3 = range(100)
list4 = range(100,200)#从100开始到200结束,不包括二百
list5 = range(1,100,3)#从1开始到100结束每次+3,默认+1


#删除列表元素
#delete删除 remove移除 value值
print(list1)
list1.remove(3)
print(list1)
#经过对比两个输出语句,结论如下:remove每次从左向右删除第一个符合的元素

list1.pop()
list1.pop()
print(list1)
#pop默认删除列表的最后一个元素


list1.pop(2)#删除编号为2的元素
print(list1)


#查询元素是否存在
list6 = ['张三','李四','王五']
if '张三1' in list6:
    print('存在')
else:
    print('不存在')


#修改元素
print(list6)
list6[2]='赵六'
print(list6)
# -*- coding: utf-8 -*-

list1=[]
list2=["张三","李四","王五"]
if "张三" in list2:
    list2[0]="赵六"
list2.append("关羽")
list2.insert(1,"赵云")
list2.pop(0)
print(list2)
# -*- coding: utf-8 -*-
import requests
from lxml import etree
for page in range(2,3):
    wang_zhi='https://www.dy2018.com/html/gndy/dyzz/index_%s.html'%page
    print(wang_zhi)
    response=requests.get(wang_zhi)
   # print(response.content)
    b=etree.HTML(response.content)
    c=b.xpath("//a/@title")
    #c=b.xpath("//font/text()")
    print(c)
# -*- coding: utf-8 -*-
import requests
from lxml import etree
for page in range(2,40000):
    url = "https://www.qidian.com/free/all?orderId=&vip=hidden&style=1&pageSize=20&siteid=1&pubflag=0&hiddenField=1&page=%s"%page
    response1 = requests.get(url)
    root = etree.HTML(response1.content)
    name = root.xpath("//h4/a/text()")
    print(name)

    username = root.xpath("//a[@class='name']/text()")
    print(username)

    statue = root.xpath("//li/div/p[@class='author']/span/text()")
    print(statue)

    cate = root.xpath("//p[@class='author']/a[2]/text()")
    print(cate)

results matching ""

    No results matching ""