python字符串、数字



一、字符串

字符串编码

python 3.x默认的字符编码是unicode,默认的文件编码是utf-8。解码格式与编码格式必须相同。在python2文件中,经常在文件开头看到“ #_coding:utf-8 _ ”语句作用是告诉python解释器此.py文件是utf-8编码,需要用utf-8的编码去读取这个.py文件。Python2将string处理为原生的bytes类型,而不是 unicode。而Python3所有的 string均是unicode类型。这意味着,只要用python3.x,无论我们的程序以那种语言开发,都可以在电脑上正常显示。python3.x除了把字符串的编码改成了unicode,还把str和bytes做了明确区分,str就是unicode格式的字符串,而bytes就是单纯的二进制。想在python3.x中看字符串,必须是unicode,其他编码一律是bytes格式。

s='''就这?就这'''
print(type(s))#<class 'str'>
s=s.encode("utf-8")
print(s,'类型',type(s))#b'\xe5\xb0\xb1\xe8\xbf\x99\xef\xbc\x9f\xe5\xb0\xb1\xe8\xbf\x99' 类型 <class 'bytes'>

这里值得注意的是:网页也bytes类型,要想在python中用需要将其进行解码。

class BaiduNetdisk(object):
def __init__(self):
        pass

    def disabledLinkanalyse(self, link):
        """
        链接有效性判断
        :param link: baiduNetdisk download Link
        :return: 0-False / html-True
        """
        try:
            print("url", link)

            headers = {
   
                'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 Edg/91.0.864.67'
            }

            req = urllib.request.Request(url=link, headers=headers, method='GET')
            response = urllib.request.urlopen(req)
            html = response.read()
		print(type(html))#bytes
Baidu=BaiduNetdisk()
Baidu.disabledLinkanalyse("https://pan.baidu.com/share/init?surl=h6UP4AuDZZAyosMUgWN_XQ")

编码方式

  • ASCII:支持英文ASCII编码是1个字节
  • GB2312:一个字节表示英文,两个字节表示中文
  • Unicode:Unicode又被称为统一码、万国码;它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。两个字节表示一个字符
  • UTF-8:一个字节表示英文,三个字节表示中文和其他语言。

字符串

字符串属于不可变序列类型,其方法都不是对原字符串进行修改。字符串使用单引号、双引号、三单引号或三双引号作为界定符,并且不同的界定符之间可以相互嵌套,但是不允许同一个字符串出现相同的两组界定符,如:

s="Alex say:"Could you say something that make you unhappy to make us
happy?""      --------------error
s='Alex say:"Could you say something that make you unhappy to make us happy?"'	--------------True

字符串的驻留机制

对于短字符串,将其赋值给多个不同对象时,内存中只有一个副本,对各对象共享一个副本。对于长字符串不遵守驻留机制。

s='Alex say:"Could you say something that make you unhappy to make us
happy?"'
s1='Alex say:"Could you say something that make you unhappy to make us happy?"'
print(id(s)==id(s1))#True
s3=s*50
s4=s1*50
print(s3==s4)#True
print(s3 is s4)#False
print(id(s3)==id(s4))#False

说明:

  1. 比较id(s3)==id(s4)和id(s)==id(s1)的结果可以很好的看出驻留机制
  2. s3 == s4和 s3 is s4的结果可以看出==并不比较地址,而是比较值。

字符串的格式化

详情查看内置函数的使用

re正则介绍

1. ” 通配符代指一个任意字符【不包括\n】		
2^”添加在规则开头,只匹配字符串开头
3”$”添加在规则末尾,只在末尾匹配
4*“重复匹配,表示重复前面字符零到多次、“+“一到多次、”?”零到一次、”{
   num }”匹配num次【{
   1}一到正无穷
5[ ]”一个匹配范围内的字符,[a-z]匹配a-z的字母;取消原则字符的特殊功能(\^-例外)[*]只代表匹配一个*[^t1]匹配除t,1之外的元素。
6 “\” 反斜杠后面跟元字符去除特殊功能,反斜杠后边跟普通字符实现特殊功能。如:\d [0-9]、\D[^0-9]、\s匹配任、何空白字符[\t\n\r\f\v]、\w匹配任何字母数字字符[a-zA-z0-9]、\b匹配一个单词和空格间的位置
注:大写均为非
7[\u4e00-\u9fa5
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值