Python的基础语法(七)(持续更新)

1 元组

  1. 什么是元组

    1)元组是容器型数据类型;将()作为容器的标志,里面多个元素用逗号隔开。🌸

    (数据1,数据2,数据3,...)
    

    2)元组是不可变的(不支持增删改);有序的(支持下标操作)

    3)元素:没有要求

    4)空元组🌸t=()

  2. 只有一个元素的元组在表示的时候唯一的元素后面必须加逗号。

    t1 = (10)
    print(t1, type(t1))		#10 <class 'int'>
    t2 = (10,)
    print(t2, type(t2), len(t2))	#(10,) <class 'tuple'> 1
    
  3. 在没有歧义的情况下,元组的()可以省略。(直接将多个数据用逗号隔开表示的也是一个元组)

    t3 = 10, 20, 30
    print(t3, len(t3))		#(10, 20, 30) 3
    t4 = (10, 20, 30)
    print(t4, len(t4))		#(10, 20, 30) 3
    t5 = (10, 20, 30) * 2
    print(t5, len(t5))		#(10, 20, 30, 10, 20, 30) 6
    
  4. 解包

    使用多个变量直接获取元组、列表中的多个元素。

    t6 = (1, 2, 3)
    print(t6[0], t6[1], t6[2])		#1 2 3
    x, y, z = t6
    print(x, y, z)		#1 2 3
    
  5. 元组是不可变的列表。

    t7 = (10, 20, 30)
    print(t7[-1])	#30
    print(t7[1:])	#(20, 30)
    print(t7 * 2, t7 + (1, 200))	#(10, 20, 30, 10, 20, 30) (10, 20, 30, 1, 200)
    print(10 in t7)		#True
    print((10, 20, 30) > (1, 200, 100))		#True
    

2 字符串

  1. 什么是字符串(str)

    1)字符串是容器型数据类型(字符串对应的容器只能保存多个文字符号,即字符)。将’ '或者" "作为容器的标志,里面的每个符号就是字符串中每个元素。

    2)不可变的(不支持增删改),有序的(支持下标操作)

    3)元素要求:引号中的每个符号都是字符串的元素(任何文字符号都可以是字符串的元素),字符串的元素又叫字符。

    注意:字符串的元素(字符)分为两种:

    1、普通字符(符号在字符串中表示它本身)

    2、转义字符(符号在字符串中有特殊功能,或者特殊意义,不能表示符号它本身)

    str1 = 'abc'
    str2 = "abc"
    # 多行字符串,可以任意换行
    str3 = '''abc'''
    str4 = """abc"""
    

    多行注释只有在特定的位置上才是注释。

    在pycharm中,IntelliJ Light主题下,注释颜色是呈灰色的,字符串的颜色是呈绿色,有着明显的区分。

    请添加图片描述

  2. 字符串特点

    1)字符串不可变,所有的可变操作都是在创建对应的新的字符串。

    str1 = 'mua'
    new_str1 = str1.upper()
    print(str1, new_str1)		#mua MUA
    

    2)字符串有序。

    print('abc' == 'bca')		#False
    

    3)任何文字符号都可以是字符串的元素。

    str2 = 'shi30.,02🍔🍜🥤'
    print(str2)		#shi30.,02🍔🍜🥤
    

    4)普通字符。

    str3 = 'akc逆'
    print(str3)		#akc逆
    

    5)\t是转义字符。

    str4 = 'a\tbd123'
    print(str4)		#a	bd123
    

3 字符

字符串中每个独立的符号就是字符。

  1. 转义字符

    转义字符是由\和另外一个或者多个符号一起组合而成(转义字符一定是\开头)。

    在特定的符号前加上\,让这个符号在字符串中具有特殊的功能或者特殊意义的字符就是转义字符。

    转义字符有些是固定的(并不是随便一个字符前加\都可以变成转义字符)。

    转义字符意义ASCII(十进制)
    \n换行010
    \t制表符tab009
    \\反斜杠\092
    单引号’039
    "双引号"034
    str1 = '\t\t《江上值水如海势聊短述》\n\t\t\t\t唐·杜甫\n\t为人性僻耽佳句,语不惊人死不休。\n\t老去诗篇浑漫与,春来花鸟莫深愁。\n\t新添水槛供垂钓,故着浮槎替入舟。\n\t焉得思如陶谢手,令渠述作与同游。'
    print(str1)
    
    str1 = 'It\'s me'
    print(str1)
    str1 = "It's me"
    print(str1)
    结果:
    		《江上值水如海势聊短述》
    				唐·杜甫
    	为人性僻耽佳句,语不惊人死不休。
    	老去诗篇浑漫与,春来花鸟莫深愁。
    	新添水槛供垂钓,故着浮槎替入舟。
    	焉得思如陶谢手,令渠述作与同游。
    It's me
    It's me
    
  2. r/R字符串

    在字符串的引号前加r或R。

    如果表示字符串的时候,在字符串前加r或R,可以让字符串中所有的转义字符功能消失。

    str1 = r'abc'
    print(str1)		#abc
    str2 = R'abc'
    print(str2)		#abc
    str3 = '\tabc\n123'
    str4 = r'\tabc\n123'
    print(str3)		
    print(str4)
    结果:
    	abc
    123
    \tabc\n123
    

    写路径时最常用。

  3. 编码字符(所有的字符都可以表示成编码字符)

    \u+四位的十六进制数

    str1 = '\u4e00abc-\u8fce'
    print(str1)		#一abc-迎
    
    进制数组成例子
    10进制数由0-9组成100,25
    2进制数由0和1组成0b1001
    8进制数由0-7组成0o77
    16进制数由0-9和a-f(A-F)组成0x89

    2、8、16进制数写时加前缀0b、0o、0x用以与十进制(0d可省略)区分。

4 字符编码

  1. 计算机存储数据只能存数字(计算机只具备存储数字的能力)。

    为了能够让计算机保存文字信息,就给每一个文本符号对应一个固定的数字,每次在需要存储这个文本符号时,就存储这个符号对应的数字。这个数字就叫这个符号的编码值。

  2. 编码表

    保存每个符号对应的编码值的表。

    1)ASCII码表

    总共有128个字符对应的编码值,主要包含:常用的英文符号、数字字符和字母。

    记忆🍼:A-65,a-97

    2)Unicode编码表

    Unicode编码表中包含ASCII表。

    Unicode编码表又叫统一码、万国码,它包含了世界上所有国家所有民族的所有语言的符号。

    记忆🍼:中文编码:4e00-9fa5

    print(0x9fa5-0x4e00)		#20901
    
  3. 编码值的应用

    1)chr(编码值) 获取指定编码值对应的字符

    print('\u4e00')		#一
    print(chr(97))		#a
    print(chr(0x9fa5))	#龥
    

    ​ 2)ord(字符) 获取指定字符对应的编码值(编码值以十进制的方式返回值)

    注意:字符,长度为1的字符串

    print(ord('a'))		#97
    print(ord('钰'), ord('t'))		#38064 116
    

    🌰将小写字母转换成大写字母

    c1 = 'm'
    print(chr(ord(c1) - 32))		#M
    

    ​ 3)hex(数字) 将数字表示成16进制数

    print(hex(38064))		#0x94b0
    
  4. 编码字符

    在字符串中表示字符的方式有两种:直接提供字符,也可以提供一个编码字符。

    \u+四位的16进制编码值

    str1 = 'a一'
    str2 = '\u0061\u4e00'
    print(str1, str2)	#a一 a一
    

    🌰判断c2保存的字符是否是中文。

    c2 = 'n'
    if '一' <= c2 <= '\u9fa5':
        print(c2, '是中文')
    else:
        print(c2, '不是中文')
    结果:n 不是中文
    

    🌰判断c2保存的字符是否是大写字母。

    c2 = 'a'
    if 'A' <= c2 <= 'Z':
        print('是大写字母')
    else:
        print('不是大写字母')
    结果:
    不是大写字母
    

    🌰两个字符串比较大小比较的是第一对不相等的字符的编码值的大小。

    print('abc' > 'Ukij')		#True
    

5 字符串基本操作

  1. 字符串获取元素和列表获取元素的语法一模一样。

    字符串没有增删改操作。

    mess = 'hello 你好!'
    print(mess[0], mess[-1], mess[4])		#h ! o
    print(mess[1:-1:2])		#el 好
    
    for i in mess:
        print(i)
    for i, item in enumerate(mess):
       print(i, item, end='')
    结果:
    0 h1 e2 l3 l4 o5  6784
    

    列表切片结果是列表,字符串切片结果是字符串。

  2. +、*

    1)字符串1+字符串2 将两个字符串合并,产生一个新的字符串。

    2)字符串*N 字符串重复N次产生一个新的字符串。

    str1 = 'abc'
    str2 = '123'
    str3 = str1 + str2
    print(str3)		#'abc123'
    str4 = str1 * 2
    print(str4)		#'abcabc'
    
  3. in 和 not in

    1)字符串1 in 字符串2 判断字符串2是否包含字符串1

    2)字符串1 not in 字符串2 判断字符串2是否不包含字符串1

    str1 = 'hello'
    print('a' in str1)		#False
    print('h' in str1)		#True
    print('lo' in str1)		#True
    print('ho' in str1)		#False
    

    🌰案例:统计str1中中文的个数。

    str1 = '换手机hss8223Kks是sjd==222'
    count1 = 0
    for i in str1:
        if '一' <= i <= '\u9fa5':
            count1 += 1
    print(count1)		#4
    

    🌰案例:提取字符串中所有的大写字母。

    str2 = '涉及到MJk230023sjkU293shT==MJUT'
    str3 = ''
    for i in str2:
        if 'A' <= i <= 'Z':
            str3 += i
    print(str3)
    结果:MJUTMJUT
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值