day-5格式化输出与字符编码

day-5格式化输出与字符编码

一,进阶字符串(格式化输出)

在python中+号有两个作用:
    1.数学运算符 用于整型 浮点型等数学直接进行加法操作
    2.用来进行字符串的连接
    字符串的增加方法:
        字符串+字符串
        
总结: 格式化输出:就可以让我们更方便的输出一些带有变量的数据或者说是更好的输出一些带有格式的数据
money = 8.8
food = '火锅'
#print('晚上还有' + money, '吃一顿' + food)
# 类型错误 相当于'6'+6 是不能相加的 只能是同类型相加

# 1.去掉+号
print('晚上还有', money, '吃一顿', food)
#去掉+ 就不是拼接 只是数据之间隔开

# 2.类型转换
print('晚上还有' + str(money), '吃一顿' + food)
#类型错误 +号只能增加相同的数据类型把8.8改为字符串

诈骗信息:[pxx]xx用户您好恭喜您成为幸运用户,仅需xx元即可获得电饭煲一个 请加上这个xxx微信获取

f-str

最简单方便的输出方式

f-str(format string全拼)

语法格式:
	在字符串前面加f/F,把输出的变量用{}包裹起来
    print(f'xxx{变量数据}xxx{变量数据}')
    括号里面的变量是可以进行操作-->方法,索引切片步长,数值操作
name='魔鬼辣椒'
money=9.9
talk='xxx1212121'
print(f'[pxx]{name}用户您好恭喜您成为幸运用户,仅需{money}元即可获得电饭煲一个 请加上这个{talk}微信获取')
print(F'{name}好吃不贵只需要{money+10}')
print(F'{name[0]}好吃不贵只需要{money+10}')
print(F'{name[2:]}好吃不贵只需要{money+10}')

占位符

通过占位符先占一个位置 后续再用具体的值补上
#去长沙浏阳笨萝卜菜馆 网红店 不确定还有没有位置需不需要排队的情况下
#电话/微信预约 我就先预约4个位置的大桌 今晚8点 婷女士 电话****
#知道人数但是不知道是哪些人 但是约定4个人是不能超过的(没有多余的位置)

	%s=str类型 -- 占位置 放字符串
    %d=int类型 -- 占位置 放整数(有小数点会被抹除)
    %f=float类型 -- 占位置 放浮点数(默认6位小数)
    	%.1f --> 带一位小数
        %.xf --> 带x位小数
    语法格式:
        print('xxxx%dxx%s'%(数据1,数据2))
# name = '魔鬼辣椒'
# money = 9.9
# talk = 'xxx1212121'
# age = 18
# print('[pxx]%s用户您好恭喜您成为幸运用户,仅需%d元即可获得电饭煲一个 请加上%s这个微信获取' % (name, money, talk))
# print('[pxx]%s用户您好恭喜您成为幸运用户,仅需%f元即可获得电饭煲一个 请加上%s这个微信获取' % (name, money, talk))
# print('[pxx]%s用户您好恭喜您成为幸运用户,仅需%.1f元即可获得电饭煲一个 请加上%s这个微信获取' % (name, money, talk))
# #print('[pxx]%s用户您好恭喜您成为幸运用户,仅需%.1f元即可获得电饭煲一个 请加上%s这个微信获取' % (name, money, talk, age))
# #print('[pxx]%s用户您好恭喜您成为幸运用户,仅需%.1f元即可获得电饭煲一个 请加上%s这个微信获取' % (name, money,))
# print('[pxx]%s用户您好恭喜您成为幸运用户,仅需%.1f元即可获得电饭煲一个 请加上%s这个微信获取' % (money,name,age))



# 一个位置一个坑 多了少了都不行
# 放的数据都是已知数据 类型是固定死的

# name = '婷婷'
# age = 18
# money = 99.9
# hobby = '睡觉'

# print('''
# 个人信息表
# -------
# 姓名:%s
# 年龄:%d
# 工资:%.1f
# 兴趣:%s
# ''' % (name, age, money, hobby))

# print('''
# 个人信息表
# -------
# 姓名:%s
# 年龄:%d
# 工资:%.1f
# 兴趣:%s
# ''' % ('王大锤', 99, 9.9, '吃饭'))
# %除了可以放变量也可以直接放数据

print('''
个人信息表
-------
姓名:%s
年龄:%d
工资:%.1f
兴趣:%s
''' % ('刘木生', 9, 9.9, '学习python'))

format

语法格式:
    print('xxx{}xxx{}'.format(数据1,数据2))
    print('xxx{下标}xxx{下标}'.format(数据1,数据2))
# print('{}的同学们好,我叫{},万万没想到我只有{}岁'.format('116期', '王大锤', 9))
# print('{}的同学们好,我叫{},万万没想到我只有{}岁'.format(True, '王大锤', 9))
# 传入的数据类型是不限制的

# print('{}的同学们好,我叫{},万万没想到我只有{}岁'.format(True, '王大锤', 9, 9.9))
# print('{}的同学们好,我叫{},万万没想到我只有{}岁'.format(True, '王大锤',))
# 数据可以多但是不能少


print('{},{}同学心血来潮染了{}发色'.format('今天', '小明', '绿'))
print('{1},{2}同学心血来潮染了{0}发色'.format('今天', '桑杰伦', '绿'))
#可以通过下标索引的方式锁定数据

二,绝对路径与相对路径

绝对路径:完整的具体位置

相对路径:简单位置 有一个参考坐标(需要再同一个文件夹里使用)

湖南省衡阳市蒸湘区横州大道衡阳898创新中心(具体位置)

从盘符触发 一步步到文件的具体位置

奥特莱斯广场旁边(简单的坐标 给你个参考对象(文件所在的文件夹位置参考))

![]() 插入图片 绝对路径
![](图片名) 插入图片 相对路径(相对路径是没有盘符)

三,字符编码

计算机只能存储0和1这些二进制的数字

我们输出的符号,英文,中文等等都是需要转换为二进制的数据进行存储 需要的时候在读取出来

字符编码/字符集:把我们输出的内容文本转换为计算机能识别的二进制数字
    一个程序是用什么编码写的 就使用相对应的编码去使用/读取
    
1.1963年推出了第一套ASCII码
收入了一些常用的数据
大小写英文字母 常用的英文符号 数字
每个字符都有一个对应的数字(码点)
最早只有127字符
#没有中文或者其他语言 字符较少不够用
每个位置都是有对应的值
二进制  0 0  1  0 0 1 1
十进制 64 32 16 8 4 2 1 (16+2+1 19) 两个!!
10011 -- 19 -- 双感叹号

2.1995--> 国内研发出了GBK编码 --> 带了两万多汉字
	同时间中国台湾 --> BIG5 大五码 繁体字
#如果用GBK去写内容用BIG5可能会是乱码 不通用

每个国家的语言不通 所以只显示自己国家的文字
用别的国家的软件就容器出现问题

3.Unicode(超过14万字符)
各个国家自己指定编码标准
包括了 汉字平片甲片 藏文 阿拉伯文等等
#单个字符占据的存储内存空间太大

4.UTF-8(,世界上目前最主流的字符编码)
1992年世界上有个组织 专门做的就是统一全球的一些知识 这个组织收集了很多国家的语言文字 放在一起 做成一个大的字典 很多国家很多电脑都可以识别里面的内容
#pycharm等一些文本编辑器 都是可以指定编码读写
在程序中每个字每个数据都有对应的序号
ord(字符) 通过字符 找到序号
chr(序号) 通过序号 找到字符
# print(ord('火')) #28779
# print(ord('攻')) #25915
#
# print(chr(28779))
# print(chr(25915))
#
# #凯撒加密 加密模式 +/-  +10
# print(chr(28789)) #灵
# print(chr(25925)) #故

print('火'>'攻')
print('麻'>'辣')
#字符串对比的是底层编码


print(ord('麻'))
print(ord('辣'))

四,参数end

print输出函数里面默认有个参数 叫end
end='\n' 他其实就是print默认的 相当于end他是在print的后面默认设定传递字符串 那么我空字符串就清除了他的换行功能

end就是会给每个print后面追加一个数据 默认是\n 可以手动更改这个追加的数据是啥

print(123,end='')
print(456)

五,拓展爬虫

爬虫技术原理 -- 模拟用户与服务器数据进行数据交互的程序
(模拟真人做事 给出数据跟拿取数据的过程这个就是交互)

请求得到结果:
	保存数据 文件图片视频
	交互 淘宝买东西 秒杀

抄作业流程

0.准备作案工具 – 导入模块

1.找到个学霸 – 找到爬取网页

2.达成交易–向服务器发出请求

3.拿到作业–拿到数据

4.开抄-- 把数据保存起来

# 模块后期会学到 在这里只要知道他是一个工具
# requests 请求 - 问
# response 相应 - 答
# pip install requests (这个工具必须要下载才可使用)
# 0.准备作案工具 -- 导入模块
import requests

# 1.找到个学霸 -- 找到爬取网页
url = 'https://www.baidu.com/?s%20wd=zhoujielun'

# 2.达成py交易--向服务器发出请求
res = requests.get(url)

# 3.拿到作业--拿到数据
res.encoding = 'utf-8'  # 拿到数据的时候先编码转换
html = res.text  # 把res的数据转换为文本

# 4.开抄-- 把数据保存到本地/数据库
# 文件操作器 可以把文件保存到本地(1,文件名字 2.操作方式 写入 3.字符编码)
# as取别名 小名
with open('浏览器1.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: /
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值