Python第一阶段学习总结

本文详细介绍了Python中的字符串和字符编码,包括字符串的定义、特性、字符类型、编码表、字符编码的使用,以及字符串的常用操作和函数。此外,还涉及到了进制转换,如二进制、八进制和十六进制。文章通过实例演示了如何获取字符串中的字符、比较字符串、判断字符类型以及进行字符串的拼接和比较。并提供了几个练习题来巩固所学知识。
摘要由CSDN通过智能技术生成

【第9天】Python第一阶段学习总结

2021/09/26

一. 字符和字符串

1. 什么是字符串(str)

  1. 数据类型:字符串是容器数据类型;将’’、""、’’’’’’、""""""作为容器的标志,里面直接是多个符号,每一个符号就是字符串的一个元素,’元素1元素2元素3…‘

  2. 特定:字符串不可变;字符串是有序的

  3. 元素:所有的符号都可以作为字符串的元素;字符串中的元素又叫字符。字符分为普通字符和转义字符两种。

    # 1) 字符串的元素(字符)可以是任意符号
    str1 = '实施额且无法shoahfohoi,、=【}😀😀'
    print(str1)
    
    # 2) 空字符串
    str2 = ''
    str3 = ""
    str4 = ''''''
    str5 = """"""
    print(type(str4), len(str4))
    
    # 3) 多行字符串
    str1 = '''
    abc
    123
    =====================================
    '''
    print(str1)
    
    str6 = 'abc\n123'
    print(str6)
    
    # 4) 字符串有序的
    print('abc' == 'cba')     # False
    

2. 字符串中的元素 - 字符

  1. 普通字符:符号在字符串中表示符号本身的字符就是普通字符

  2. 转义字符:在特定符号前加\表示特殊功能或者特殊意义的字符

    \n - 换行
    \t - 水平制表符(相当于tab键)
    ’ - 表示一个普通的单引号
    " - 表示一个普通的双引号
    \ - 标志一个普通的反斜杠

    \u4四的16进制数 - 编码字符(四的16进制数是字符的编码值)

3. 字符编码

  1. 计算机在存储数据的时候只能存数字(数字的二进制补码)。
  2. 为了能够让计算机存储字符,给每个字符对应了一个固定数字。每次在存储这个字符的时候,就存储这个字符对应的数字。
  3. 每个字符对应的数字就是这个字符的编码值。

4. 编码表

常用的编码表:ASCII码表、Unicode编码表(Python)

  1. ASCII码表:
    a. 只记录了美国的符号(这里没有记录中文)
    b. 数字字符在大写字母的前面,大写在小写字母的前面,并且这三类符号之间不连续。
  2. Unicode编码表:
    a. 是ASCII码表的扩展(包含了ASCII码表),记录了世界上所有国家所有的民族的所有语言的符号。
    b. 中文范围:4e00 ~ 9fa5

5. 编码值的使用

  1. chr函数

    chr(编码值) - 获取编码值对应的字符

    print(chr(97))    # 'a'
    print(chr(0x5fa5))  # 徥
    
    # 练习:打印所有中文
    num = 0
    for x in range(0x4e00, 0x9fa5 + 1):
        num += 1
        print(chr(x), end=' ')
        if num == 30:
            print()
            num = 0
    
  2. ord函数

    ord(字符) - 获取字符编码值(十进制)

    print(ord('王'), ord('浩'), ord('宇'))
    
  3. 编码字符

    # \u四位的16进制编码值
    print('a\u0061')    #aa
    
    c = '看'
    if '\u4e00' <= c <= '\u9fa5':
        print('中文!')
    

二. 进制

  1. 十进制

    # 基数:0 ~ 9
    # 表示方式:直接写
    # 转换函数:print()
    
  2. 二进制

    # 基数:0、1
    # 表示方式:加前缀0b/0B
    # 转换函数:bin(数据)
    num = 0b101
    print(num)
    
  3. 八进制

    # 基数:0 ~ 7
    # 表示方式:加前缀0o/0O
    # 转换函数:oct(数据)
    num = 0o23
    print(num)
    
  4. 十六进制

    # 基数:0 ~ 9, a ~ f(A ~ F)
    # 表示方式:加前缀0x/0X
    # 转换函数:hex(数据)
    num = 0xaf2
    print(num)
    

三. 字符串相关操作和相关函数

1. 查 - 获取字符

字符串获取字符和列表获取元素的语法一样

str1 = 'how are you? i am fine! thank you! and you?'
print(str1[2], str1[-1])

注意:一个转义字符的长度是1

str1 = '\tabc\n123\u4e00'
# print(str1[1], str1[-2])

print(str1[1:6])      # abc 1
print(str1[-1:2])     # ''
print(str1[1:7:2])    # ac1
print(str1[-1::-2])   # 一2 b
print(str1[2:])       # bc 123一

2. +,*

print('abc' + 'hello')  # 'abchello'
print('abc' * 3)        # 'abcabcabc'

3. 比较运算

  1. 两个字符串比较大小,比较的是第一对儿不相等字符的编码值的大小
  2. 两个字符比较大小,比较的是字符的编码值的大小
已知字符X:
判断是否是数字字符:'0' <= X <= '9'
判断是否是小写字母:'a' <= X <= 'z'
判断是否是字母:'a' <= X <= 'z' or 'A' <= X <= 'Z'
判断是否是中文:'\u4e00' <= X <= '\u9fa5'

print('abc' == 'acb')   # False
print('abc' > 'Abc123')   # True
print('你好' > 'hello')     # True
# 练习1:已知一个字符串,统计字符串中中文出现的次数
count = 0
str1 = '-==sh是uM09K你好!'
for x in str1:
    if '\u4e00' <= x <= '\u9fa5':
        count += 1
print(count)
# 练习2:判断指定字符串是否是纯数字字符串
# '23445' -> '是'      '122h2333' -> 不是
str1 = '23445'
for x in str1:
    if not '0' <= x <= '9':
        print('不是')
        break
else:
    print('是')
# 练习3: 提取字符串中所有的大写字母
# '-==sh是uM09K你好!'  -> 'MK'
str3 = '-==sh是uM09K你好!'
str4 = ''
for x in str3:
    if 'A' <= x <= 'Z':
        str4 += x
print(str4)

4. in 和 not in

字符串1 in 字符串2 - 判断字符串1是否是字符串2的字串

5. 相关函数

  1. len(字符串)
  2. str(数据) - 将数据转换成字符串(任何类型的数据都可以转换成字符串;转换的时候直接在数据的打印值外面加引号)
str(23)      # '23'
str(12.5)    # '12.5'
str([10, 20])  # '[10, 20]'
str({'a': 10, 'b': 20})  # "{'a': 10, 'b': 20}"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值