大数据Python基础——第二章 编码字符串相关用法

一.Python基础数据类型

     整型(int),浮点型 (float),字符串(str),列表(list),集合(set),元组(tuple),字典(dict) ,布尔型(bool)

     其中字符串(str),集合(set),字典(dict)属于可变数据类型;

     在变量第一次被赋值声明时,会在内存中开辟一块地址空间,用来存储被赋予的值。我们可以在修改存储在内存中的值的同时,保证其对应的内存地址不发生改变。

     如下为整型(int)数据和字符串(str)数据的部分测试结果:

注:print(id(a))或print(id(b))显示的是内存空间地址的值。 

     其中整型(int),浮点型 (float),列表(list),元组(tuple),布尔型(bool)都属于不可变数据类型,内存空间锁死;在变量第一次被赋值声明时,也会在内存中开辟一块地址空间,用来存储被赋予的值;变量被声明后,变量的值就与开辟的内存地址绑定,若想要修改存储在其中的值,则会开辟一块新的内存地址空间保存新的值。

注:不管是可变数据类型还是不可变数据类型,若是采用直接拼接的方式,如 a = a + [某一个数值],则变量赋值后的空间地址都会随之改变。

二.转义

     转义字符\可以转义很多字符。

  \n表示换行;

 \t表示制表符;

 \\表示的字符就是\;

     在python的交互命令中:

     print('hello \n world')打印出来的字符串helloworld之间会产生空行;

     print('hello \\n world')命令则会输出结果hello \n world;

     print(r'hello \n world')命令同样会输出结果hello \n world;

 三.布尔型判断真假   

if 1:
    print(123) 输出:123
if 3>2:
    print(123) 输出:123
if None:
    print(123) None本身的意思就是空的,所以这里不会输出任何数
if 0:
    print(123) 0本身也有空值的意思,这里也不会输出任何数
if True:
    print(123) 输出:123
if False:
    print(123) Flase本身有假的含义,这里不会输出任何数

 四.字符串和编码

     因为计算机只能处理数字,若要处理文本,则需要先把文本转换为数字才能处理;早期采用美国人发明的ASCII编码,例如大写字母A的编码是65等等,为防止处理中文时和ASCII编码产生冲突,中国制定了GB2312编码,用来把中文编进去。

     全世界语言各国有各国的标准,为统合各种语言,防止编译时出现乱码,Unicode字符集应运而生。Unicode把所有语言都统一到一套编码里,这样就不会出现乱码问题了。

    在这之后,由于Unicode字符集浪费字符空间,又将其改良为了‘UTF-8’编码。

    若要询问汉字可以用几个字节表示,没有固定的表示字节。在不同的编码汉字占用不同的字节,在中国制定的GB2312编码一般占用两个字节,但一些特殊汉字也会占用到三个字节以上。

 注:查看ASCII编码的命令:for i in range (1,50000):      print(chr(i))

        根据值找下标的命令:print(ord('A'))  显示数值:65 print(chr(65)) 显示数值:A

五.转码命令及其结果展示

 六. 字符串格式化

a = 'Hi, %s, you have $%d.' % ('Mary', 10000)
print(a)

输出结果:Hi, Mary, you have $10000.

      %s代表之后会放进来一个字符串,%d代表之后会放进来一个数值,%之后的代表一个元组,将元组中的值传递给之前预留好的变量参数。

七. 字符串的format()写法

     format()方法,它会用传入的参数依次替换字符串内的占位符{0}{1}、.......

python命令:

a = 'Hello, {0}, 成绩提升了 {1:.2f}%'.format('小光', 13.765)
print(a)

输出结果:Hello, 小光, 成绩提升了 13.77%

      注:其中{0}、{1}都是占位符,之后format中的数值就会传递过来,{1:.2f}中.2f代表只取小数点后两位,之后的%没有特殊含义,只代表百分率。

 八. 小知识——字符串的倒序

     对字符串a = 'hello world!'进行倒序,使用命令print(a[len(a)::-1])print(a[-1::-1]),最终得出的结果都是!dlrow olleh。

九. 去左右特殊字符或空白

     1.简便方法:利用.strip()方法去除

a = '     #######hellow world_________     '
print(a.strip(' ').strip('#').strip('_')) 
print(a.lstrip(' '))  //去左空白
print(a.rstrip(' '))  //去右空白
得出结果:
hellow world  
#######hellow world_________     
     #######hellow world_________

     2.用切片加循环的方式实现去除左右空白或特殊字符的功能

def strip1(a,b=' '):
    m = 0
    n = 0
    while True:
        if a[0] == b:
            a = a[1:]
        else:
            m = 1
        if a[-1] == b:
            a = a[:-1]
        else:
            n = 1
        if m == 1 and n == 1:
            return a
print(strip1(strip1(strip1(a),'#'),'_'))
得出结果:
hellow world

注:去除左右空白或特殊字符时需要由外到内层层去除, 不然则显示原字符,没有变化;这里将去除功能封装在了strip1函数中,去除时只需要调用函数传参就可以了。

十. 字符串变大小写

a = 'hEllO wORld !' 
print(a.upper())  //大写
print(a.lower())  //小写
print(a.swapcase())  //大小写反转
print(a.title())  //首字母大写,其余字母小写

得出结果:
HELLO WORLD !
hello world !
HeLLo WorLD !
Hello World !

 测试:编写一个方法,打印出0-100000内所有类似于“12321”的回数。

方法一:

for i in range(0,100000):
    if str(i) == str(i)[-1::-1]:
        print(i)

 方法二:

for num in range(100,100000):
    b=0
    num = str(num)
    middle = len(num) // 2
    for index in range(middle):
        if num[index]!=num[-(index + 1)]:
            b = 1
    if b == 0:
        print(num)

     

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值