目录
输入输出
输入:input
语法格式:input(""),引号内为提示内容
输出:print
语法格式:print(""),直接输出内容
变量与基本数据类型
1、交互模式和脚本模式
python的开发模式:
1). 交互模式:默认进入Python环境,表示符号>>>
优点:简单,快捷
缺点:代码报错无法修改,无法保存
适合:测试或者一些简单的代码
2). 脚本模式(文件模式):把Python写在文件里运行,正式代码都是用脚本模式
优点:可以修改和保存,适合长期使用
创建方式:【File】->【New File】
保存方式:Ctrl+s
运行方式:【Run】->【Run Module】(快捷键:F5)
文件模式中的input函数,只打印一次;只有交互模式会打印出输入的信
2、注释
定义:解释代码或者代码段实现的功能,方便程序员记忆。
注释的内容不会被计算机当作代码去执行
注释分两种:
1). 单行注释:已'#'开始,意思为注释内容
2). 多行注释:三对未被使用的单引号或者是双引号来表达
脚本模式注释快捷键:alt+3
脚本模式取消注释快捷键:alt+4
3、变量
变量命名规则与规范
定义:变量,可以改变的量
计算机里的变量是由三个元素组成:
1). 数据类型(type)
2). 内存地址(id)
3). 值
变量命名规范:
1). 不能用Python关键字取名
2). 不能用特殊符号,首字母不能为数字
3). Python区分大小写
4). 一般用数字、下划线和数字命名(可以用中文,不建议)
5). 见名知意
6). 使用内置函数进行变量命名,会覆盖原函数原本的意义
命名方法:
1). 大驼峰命名法:每个单词首字母大写
例:SimpleHttpServer
2). 小驼峰命名法:第二个单词开始首字母大写
例:simpleHttpServer
3). 下划线命名法:字母全小写,不同单词之间用下划线分割
例:simple_http_server
为什么要规范变量命名方式:为了提高代码的阅读性
4、变量的基本使用
1). 声明变量:把等号右边的值赋给左边的变量名
例:a=1
2). 使用变量:print(变量)
3). 用输入的方式给变量赋值
语法格式:a=input(”请输入a的值:“)
4). 如何声明多个变量
例:name="zhangsan"
age=22
5、基本数据类型
不同的数据需要使用不同的存储容器,对数据进行分类,方便管理数据。
1). 数值类型
整型:整数,无小数点,int类型
浮点型:带有小数点的数,float类型
布尔类型:True(1)和False(0),bool类型,首字母要大写
2). 序列类型--字符串
字符串:str类型,可以存储文字内容,用一对单引号或者双引号引起来的内容
字符串的嵌套使用:
1.当字符串有两对一模一样的引号时会报错,内外要使用不同的引号(单引号或者双引号)区分开来。
2. 当字符串后面接*n时表示将这个字符串打印n次
3. 在Python中有一些特别功能的字符,表示形式: \加指定字符
\n -- 换行
\t -- tab键
\ -- 正常输出\
取消转义:在字符串(引号前)加上一个r
格式化输出与字符编码
1、进阶字符串(格式化输出)
money=8.8 food='美食' print('花了'+money,'吃了'+food) #会报错,只能增加相同类型的数据 修改为:print('花了',money,'吃了'+food)
f-str(fromat string)
最简单方便的输出方式 语法格式: 在字符串前面加f/F,输出的变量用{}包裹起来 print(f'xxx{变量数据}xxx{变量数据}') 例: money=8.9 food='佛跳墙' print(f'花了{money}吃了{food}') 结果:花了8.9吃了佛跳墙 # {}内可以进行切片操作 print(f'花了{money}吃了{food[0:2]}') 结果:花了8.9吃了佛跳
format
语法格式: print('xx{}xx{}'.format(数据1,数据2)) money=8.9 food='佛跳墙' print('花了{}吃了{}'.format(money,food)) 结果:花了8.9吃了佛跳墙 根据下标定位变量位置 print('祝贺{2}同学,获得iPhone一台.{0}{1}'.format('恭喜发财','大吉大利','zhangsan')) 结果:祝贺zhangsan同学,获得iPhone一台.恭喜发财大吉大利
占位符
通过占位符预定一个位置,后续用具体的值补上 %s:str类型 %d:int类型 %f:float类型(默认小数点后六位数) 指定小数点后位数:%.1f(小数点后1位数)%.2f(小数点后2位数) 语法格式: print('xxx%sxxx%dxxx%f'%(数据1,数据2)) name='zhangsan' money=8888 print('祝贺%s同学,获得价值%d的iPhone一台.{0}{1}'.format('恭喜发财','大吉大利','zhangsan')%(name,money)) 结果:祝贺zhangsan同学,获得价值8888的iPhone一台.恭喜发财大吉大利 字符编码 计算机只能存储0/1二进制数据 字符编码:把输出的内容转换为计算机能识别的二进制数据 一个程序用什么编码写,就用相对应的编码去读取 1、1963年推出的第一套编码:ASCII编码,对应的数字叫码点,包含127个字符,不包过中文 2、1981年大陆推出GB2312---GBK(简繁体,日文,韩文等) 3、1984年港澳台推出big5大码 4、Unicode(包含超过14万个字符,收纳了各个国家自定字符的标准,一个字符占用的空间比较大) 5、UTF-8(主流的字符编码) ord(字符) 通过字符找到序号 chr(序号) 通过序号找到字符 print(ord('张')) #结果:24352 print(chr(24352)) #结果:张 ==================================== pycharm:复制快捷键CTRL+d 凯撒加密 print(chr(21916)) #喜 print(chr(27426)) #欢 print(chr(20320)) #你 每个固定+50 print(chr(21966)) #嗎 print(chr(27476)) #歔 print(chr(20370)) #侒
扩展爬虫
爬虫原理:模拟用户与服务器进行数据交互 ================================= import requests # 引用请求模块 # 找到要爬取的网页 url='https://www.baidu.com/' # 向服务器发出请求 result=requests.get(url) # 拿到数据,转换字符编码格式为UTF-8 res.encoding='UTF-8' # 改为文本模式 html=res.text # 保存数据在本地 with open('Brows1.html','w',encoding='UTF-8') as f: f.write(html) ================================================== 如何判断网页是否可以爬取 robots协议 1、允许--robots.txt为空 2、禁止 获取本网站某些内容/目录 User-agent:* Disallow:/内容1/内容2 3.禁止 某个搜索引擎获取本网站的内容 User-agent: 指定哪些网站不能获取(baiduspider) Disallow: / 4、 禁止所有SE(搜索引擎)收录本站: User-agent: * Disallow: /