Python初学

学自菜鸟教程
特别注意,python中空格不能随便按!!!!!!!

注释与输入输出

'''
啊我被注释十了
'''

# 巧了我也是

"""
呃还有我
"""

从键盘输入

input("请输入:");

输出

a='name'
b='age'
print(a,b)
print(f'{a} {b}')
print("%s %s" %(a,b))
#三种输出都为:name age
print('{格式}'.format(要格式化的数据))
#格式化输入输出

运算

//#取整除赋值运算符
/ #除法

列表 [可更改]

  • 列表的增删
list = ['red', 'green', 'blue', 'yellow', 'white']
# 增:append 
list.append('black')

# 删:del
del list[0]

print (list)
#输出:['green', 'blue', 'yellow', 'white','black'r]
  • 可以对列表进行拼接,数学运算
[1, 2, 3] + [4, 5, 6]	= [1, 2, 3, 4, 5, 6]
[1] * 4 = [1,1,1,1]

元组(不可更改元素)

tup2 = (1, 2, 3, 4, 5 )
tup2 =  1, 2, 3, 4, 5 
  • 元组中的元素不能修改,但可以对整个元组进行操作

字典
字典是另一种可变容器模型,且可存储任意类型对象。

d = {key1 : value1, key2 : value2, key3 : value3 }
d={'name':'yby' 'age':21 'like':'dance'}
#增
d['school']=48 
#改
d['name']='ss'
#删(del还可以删除整个字典,该字典不存在
del d['name']
#清空字典(字典存在,内容清空
d.clear()

集合
可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典

# 集合间的运算:- | & ^(不同时包含于a和b的元素)
a = set('balance')
b = {'a','f','s','b'}
print(a^b)
# 输出:set(['c', 'e', 'f', 'l', 'n', 's'])
#增 删 ....
a.add(x)
a.remove(x)

索引循环与函数

正向:从0开始
反向:从-1开始

[起始位置(从下一位开始):终止位置(截止于本位置):步长(如果省略则则默认为1)]

eg:

list = ['a' 'b' 'c' 'd' 'e']
#正向    0   1   2    3   4
#反向   -5  -4  -3   -2  -1
print(list[-1])
print(list[ 4])   

在 if , elif , else , for , while , class ,def 声明末尾添加 冒号

与range函数结合

for i in range(0, 10, 3) :
# 3这个参数可省,省略则默认步长为1
    print(i)
#输出:0 3 6 9

在这里插入图片描述
函数同样使用 :与缩进代替花括号

加了星号 * 的参数会以元组(tuple)的形式导入,存放所有未命名的变量参数。
加了两个星号 ** 的参数会以字典的形式导入。

文件流输入输出

open(file, mode='r')
#完整语法:
#open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

mode参数:

r: 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。

w :打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。

a :打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

+ :打开一个文件进行更新(可读可写)。
b: 二进制模式。

默认为文本模式,如果要以二进制模式打开,加上 b ,如果要更新同理,加上+

eg:
wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

琐碎小点

在 python 用 import 或者 from…import 来导入相应的模块。

转义字符\

元组中只包含一个元素时,需要在元素后面添加逗号,否则括号会被当作运算符使用

pass 语句
Python pass是空语句,是为了保持程序结构的完整性,pass 不做任何事情,一般用做占位语句




某些函数

print (str.split( ))       
# 以空格为分隔符
print (str.split('i',2))   
# 以 i 为分隔符,分割两次
print (str.split('i',-1))   
# 以 i 为分隔符,分割所有(如果没有第二个参数则默认为-1
print (str.split( )[0]) 
print (str.split( )[0].split('i')[-1])  
#还可以这样用
'''
输出
['this', 'is', 'string', 'example....wow!!!']
['th', 's ', 's string example....wow!!!']
['th', 's ', 's str', 'ng example....wow!!!']
this
s
'''

爬虫初试

爬取网页上排行前30的网易云热歌
结果如图:
在这里插入图片描述

import  requests
# pip install requests
from lxml import etree
# pip install lxml
#以上是爬取需要加载的库  井号内的部分需要到Terminal中加载

url = 'https://www.maigoo.com/top/420564.html'
#需要爬取的网站
headers={
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Safari/537.36'
}
#在开发者工具的Header中查看 或者burp suite抓包
html=requests.get(url,headers=headers).text
#以get方法 自定义headers请求方式
tree=etree.HTML(html)
#创建选择器对象
lis=tree.xpath('//*[@id="modellist-2139196"]/div/div/div')
# //*[@id="modellist-2139196"]/div/div/div[1]
#需要爬取的整个页面xpath(直接在开发者工具中copy—>xpath复制)
for li in lis:
    # //*[@id="modellist-2139196"]/div/div/div[1]/div[1]/div[1]/div/a
    #需要爬取的链接,文字,,,,
    if li.xpath('./div/div[1]/div/a/text()')!=[]:
        title=li.xpath('./div/div/div/a/text()')#文字
        li_url=li.xpath('./div/div/div/a/@href')#链接
#       print(title)
#       print(li_url)
for x in range(0,len(title)):
    print(title[x],li_url[x])
#遍历列表依次输出
#
'''
r=requests.get(url)
r.text	HTTP响应内容的字符串形式,即,url对应的页面内容
r.content	HTTP响应内容的二进制形式

requests.Timeout	请求URL超时,产生超时异常
requests.ConnectionError	网络连接错误异常,如DNS查询失败、拒绝连接等


tip:xpath匹配规则:
nodename		选取此节点的所有子节点。
/				从根节点选取。
//				从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。
.				选取当前节点。
..				选取当前节点的父节点。
@				选取属性


ookstore   		选取 bookstore 元素的所有子节点。
/bookstore		选取根元素 bookstore。
bookstore/book	选取属于 bookstore 的子元素的所有 book 元素。
//book     		选取所有 book 子元素,而不管它们在文档中的位置。
bookstore//book	选择属于 bookstore 元素的后代的所有 book 元素,而不管它们位于 bookstore 之下的什么位置。
//@lang	        选取名为 lang 的所有属性。

通配符
*				匹配任何元素节点。
@*				匹配任何属性节点。
node()			匹配任何类型的节点。



路径表达式		结果
/bookstore/*	选取 bookstore 元素的所有子元素。
//*				选取文档中的所有元素。
//title[@*]		选取所有带有属性的 title 元素。


'''
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
单片微型计算机(MCU)经过多年的发展,在性能上有很大的进步,在型号上发展到上千种类,已经广泛应用于人类社会生活的各个领域。单片机课程已经成为高校计算机、自动化、测控以及电子信息工程等专业的重要课程。该课程是一门理论性和实践性都很强的课程,在实际教学中,应将理论教学和实验教学紧密结合。学生在掌握理论知识之余,必须通过编写程序、设计硬件电路、仿真、调试这一系列的实验过程,才能更好地掌握单片机的结构原理和应用技能。随着单片机及其接口技术的飞速发展,目前市场上供应的编程仿真实验资源并不能完全满足高校单片机课程教与学的需求,构建低成本、技术先进、源码公开的单片机编程仿真实验系统,对我国单片机课程的教学和单片机领域人才的培养具有重要的现实意义。 本论文结合目前教学中对单片机编程仿真实验系统的实际需求,采用模块化结构设计思想,精心设计和开发了单片机编程仿真实验系统。该单片机编程仿真实验系统由PC机端单片机编程控制软件和单片机编程仿真实验板两部分组成。PC机端的单片机编程控制软件可以自动检测到连接到单片机编程仿真实验板上的单片机,控制单片机编程器擦除、写入、读出、校验目标单片机ROM中的程序,以十六进制文件(.HEX文件)格式显示在控制界面内;单片机仿真实验系统能够把写入单片机的程序实时地运行,并呈现实际运行效果。单片机编程控制软件和单片机仿真实验板组成一个完整的单片机编程仿真实验系统。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值