day6_string

"==========曹志华=========="

1.什么是 字符串

字符串:是python内置的一种容器型数据类型,不可变、有序。
把''号作为容器,里面可以根据情况放多个字符。
字符串里边的内容叫元素或者字符
不可变:指的是内容不能变,字符的顺序不能变。
有序:一旦字符串确定,字符串中字符的位置就固定(每个字符是第几个是确定的)

2.字符串中的内容 = 字符

python中只有字符的概念,没有字符对应的数据类型。
字符串的基本单元就是字符,又叫字符串的元素。

a.基本字符-数字-字母/ 后面跟不同的符号,来表示特殊功能或者特殊意义的字符。

\n 换行
\'表示一个单引号
\ "表示双引号
\\ 两个在一起,表示一个,不是用来转义用.
\t 制表符

阻止转义:在字符串的前面加 r 或 R,可以阻止字符串转义

str2 = 'abc\n123\'\y"z'      #abc
                              #123'\y"z
str3 = r'\abc\n123\'\y"z'    #  \abc\n123\'\y"z
print(str2, str3)    
c.编码字符: \u 后边跟4位的十六进制数,来表示一个字符。这个4位的十六进制数对应的值是字符的编码值。

3.字符编码:

python中的字符采用的是unicode编码

计算机存数据的时候,只能存数字,而且存的是数字的补码(是以二进制的格式存储的)

100 # 十进制数
print(bin(100)) #bin(数字)---获取指定数字的 ** 二进制**。
print(bin(100))
print(oct(100)) # oct(数字)----获取指定数字的 八进制
print(hex(100)) # hex(数字)------获取指定数字的 十六进制

编码:每个字符在计算机中存储的时候都会对应一个固定且唯一的数字,这个数字就是这个字符的编码。

每个字和数字的一一对应关系就是编码表,常见的编码表有:ASCII编码表和Uniconde编码表
** ASCII**表只对数字字符、英文字母、英文符号进行编码。

Unicode,编码表示是对ASSII表的扩充。包含世界上所有的符号,文字。 4e00-9fa5(汉子范围)

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

ord(字符) 获取字符对应的编码值。 注意:字符值就是长度是1的字符串。

print(ord('曹'),ord('志'),ord('华'))
print(chr(100))
# 列出所有汉字。
num = 0
for code in range(0x4e00,0x9fa5):
    print(chr(code), end='')
    num += 1
    if num % 20 == 0:
        print()

"====================曹志华===================="

1.获取字符——取字符串内容

a.获取单个字符

a-语法:字符串【下标】 = 根据下标获取字符串中对应的字符,结果就是获取到的字符。

b-说明:字符串 - 可以是字符串值,也可以是变量,也可以是字符串的表达式都可以。

    【 】  - 固定写法
    下 标  - 又叫索引,指的是字符串中 字符 的位置。从0开始,到字符串的长度减1。
             0,1、2、3、4,0表示第一个字符。
             小标范围还可以是-1、-2、 -3、 -4 一直到字符串长度减1.-1表示倒数第一个。

c.注意:获取单个字符串的时候,下标不能越界。

str = 'python'  #  p 0 、-6      y 1、-5     t 2、-4
result = 'python'[3]
print(result)
print(str [0], str [-6], str[-1])

a-语法:字符串【开始下标:结束标语;步长】-从开始下标开始i,获取到结束下标前为止,每次下标的值增加步长。

    和range(1, 10, 2)==(1 3 5 7 9)差不多

b-说明:字符串【开始下标:结束标语;步长】

    【】、: —— 都是固定写法。
    开始下标、结束下标——下标值,开始下标可以取到,结束下标对应字符一定取不到。
    步长 —— 必须是整数,可以是正的、也可以是负的。

c-注意:下标可以越界。

    如果步长是正的,从前往后获取。开始下标对应的字符要在结束下标对应的字符前才能获取到值。
    如果步长是负的,从后往前获取。开始下标对应的字符要在结束下标对应的字符的后面才能获取到值。
str2 = 'abcdef123456'
print(str2[0:4:1])
print(str2[-2:-10:-1])   #
print(str2[0:100:1])     #下标可以越界。abcdef123456
print('hello python'[1:-2:3])    # eoy

切片的语法可以对步长,开始下标和结束下标可以省略:

1.省略步长(步长默认为1)
    字符串[开始下标:结束小标]  ==  字符串【开始下标:结束下标:1】
    str2 = 'abcdef123456'
    print(str2[2:5])    # c e d 
    print(str2[-4:-1])    # 3 4 5 
2.省略开始下标 
    字符串【:结束小标:步长】 —— 如果步长是正,从前往后取,如果是负,从后往前取。
    print(str2[:3:1])    abc
     print(str2[:3:-1])   654321fd
3.省略结束下:
    字符串【开始下标::步长】—— 如果步长为正,取到最后一个,如果步长为负,从后往前取,取到第一个字符位置。
    print(str2[2:])   # cedf123456
    print(str2[2::-1])   #cba
    
4.两个一起省略:

    print(str2【:】)  # abcdef123456
    print(str2[::-1]   # 654321fedcba

'''
num = 123456
num1=int(str(num)[::-1])
print(num1)
1.3遍历字符串——一个一个的取出所有的字符
'''
方法一:直接遍历。
    for 变量 in 字符串:
        循环体
    for char in str2:
        print(char)
方法二:通过遍历下标,来遍历字符串
    for 变量 in range(字符串长度):
        字符串[变量]
    
    str3 = 'when i was yang '
    #len(字符串)—— 获取字符串长度,返回一个数字。字符串长度指字符串的字符个数。
    for index in range(len(str3))
        print(index,str3[index])

    index = 0
    while index < len(str3)
        print(index,str3[index]
        index += 1

"=====================曹志======================

a.数学运算:字符串支持加法运算和乘法运算

语法:字符串1+字符串2 —— 把他们拼接在一起,产生一个新的字符串。

new_str='abc'+'123'
print(new_str)     #abc123
``` python
new_str += '你好'    #abc123你好

注意:字符串只能和字符串相加,不能是其他类型数据。数字和字符串不能混合相加。

···
print(new_str+'=========')
···

乘法运算:

语法:字符串正整数/正整数字符串 —— 指定的字符串重复指定次数,产生一个新的字符串

print('abc'*2)   # abc abc
print('*'*10)     #************

比较运算:字符串支持所有的比较运算符

字符串1 == 字符串2 ,字符串1 != 字符串2 ——判断两个字符串是否相等。

print('abc' == 'abc')    # True
print('abc' == 'bcb')    # False

两个字符串比较大小:让两个字符串中相同位置的字符一一比较,找到第一对不相等的字符,判断编码值的大小。

print('abcdef' > 'abz') # False
print('abc1' > 'abc') # True

判断一个字符是否是字母,'a'<=char <= 'z' or 'A' <= char <='Z'

判断一个字符是否是数字:'0' <= char <= '9'

判断您是否是中文:(4e00~9fa5): ('\u4e00' <= char <= '\u9fa5' / 044e00 <= ord(char) <= 0x9fa5

print('\u4e00' <= char <= '\u9fa5')

练习:输入一个任意的字符串,统计输入的内容中字母的个数
例如:输入‘abc123你好世界end~~~’ 结果是6 统计字母有多少个。

str1 = input('请随便输入:')
count = 0
for x in str1:
    if 'a'<= x <= 'z' or 'A' <= x <='Z':
        print(x)
        count+=1
print('字母的个数', count)

3.in 和 not in 操作

字符串1 in 字符串2 —— 判断字符串1是否在字符串2中,(判断字符串2中是否包含字符串1)

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

print('abc' in '1223abc====')        #True
print('abc' in 'a122bc======')       # False
print('abc' not in 'a122bc======')   #True
print('@' in 'ad@s')                 #True

4.常用内置函数

len(字符串) —— 字符串长度

str(数据) —— 将其他数据转换成字符串。 所有类型的数据都可以转换成字符串。 所有的数据都可以转换成字符串,转换的时候直接在数据外面加引号“”。

print(int('+23')) #去掉引号后是整数,就可以转换成整型。
print(float('12.4')) #转换成浮点数,去掉引号后本身就是就是一个数字的字符串,小数、整数都可以。
print(bool('bac')) #True
print(bool('')) #False ,字符串转换成bool值时,只有空串,才会转换成False,其他的都是True。

"=========================曹志华======================="

5.字符串的对象方法

字符串.方法()

字符串.capitalize() —— 将字符串首字母大写i

str4 = 'hello'
new_str = str4.capitalize()
print(new_str)

字符串 .center(width,fillchar)

产生一个长度为width的新字符串,新字符串中原字符串居中,剩余的用fillchar填充。

new_str = str4.center(11, '*')

字符串.ljust(width,fillchar)

new_str =

字符串. rjust(width,fillchar)

py19001 、 py19002 、 py19010

字符串.zfill(width) ——产生一个宽度是width的字符串,原字符串在右边,前用0填充。

study_id = str(num).zfill(4)
print(study_id)
···
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容