day6- sting1

复习 上一周内容

1.变量

  • 变量名 = 值
  • 变量名 - 标识符,不能是关键字。
    见名知意,所有字母小写
    多个单词间隔用_(下划线)隔开
    不能使用系统内置函数名

a = b = c = d = 100 同时声明多个变量
a1 = b1 = c1 = 100, 200 ,300
a2 = 10; b2 = 20 (不建议)

2.运算符

数学 ,比较,逻辑,赋值
** 开方
10<= a <= 20 (python可以这样)其他语言不行

  • 逻辑运算符 运算对象和结果都是布尔值
    赋值运算符 ,左边必须是变量
    a+= b = 90 (不可以)
    • 符合赋值运算符右边不能有其他赋值运算符

3.分支结构

  • for 变量 in 序列():
    循环体
    else:
    语句块

  • while 条件语句:
    循环体
    else:
    语句块

  • continue (结束当次循环,进入下一次循环)

  • break (直接结束循环)

1. 什么是字符串 (str)

  • 字符串是python内置的一种容器型数据类型,不可变,但有序 ,将单引号或者双引号作为容器,里面可放多个字符。
  • 不可变:里面字符内容和顺序不可变
  • 有序:一但字符串确定,字符串中间的字符位置就固定(每个字符是第几个是确定的)
'ghj2456'
"发13543sgfdrg里面都是字符"

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

  • python中只有字符的概念,没有字符相对应的数据类型

  • 字符串的基本单元,又叫字符串的元素

  • a.基本字符 - 数字,字母,常用符号,中文,日语,韩语等等
    '1234'
    'dbdbdb'
    '中文'
    '===='
    '+++---===='

  • b. 转义字符 - 通过转义符号\后面不同的符号(其他语言也一样)
    来表示特殊功能特殊意义的字符

  • \n - 换行

  • \' - 一个单引号

  • \" - 一个双引号

  • \\ - (表示显示一个\)加一个反斜杠显示后面的内容

  • \t - 制表符(tab键的作用)
    str1 = 'a'bc\n1\n23'
    print(str1)

  • 阻止转义:在字符串的最前面加r/R,可以阻止字符串中的,转义字符转义
(一般用于正则表达式)

str2 = r'\tabc\n123x'"\z'
print(str2)

c. 编码字符 - \u 后面跟4位的16进制数,的编码字符,来表示一个字符
\u 这个4位的16进制数对应的值是字符的编码值
  • 0-9, a-f
3. 字符编码
python 中的字符采用的是unicode编码
计算机存数据只能存数字,而且存的是数字的补码(以二进制的格式来储存)
100 十进制
print(bin(100))   #bin(数字) - 获取指定数字的二进制
print(oct(100))   #oct(数字) - 获取指定数字的八进制
print(hex(100))   #hex(数字) - 获取指定数字的16进制
print('二进制:',)

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

  • 这个数字技术这个字符的编码,每一个字符和数字的一样对应关系就是编码表:
  • 常见的编码表:ASCII码表和Unicode编码表。
  • ASCII码表中只对(数字字符,英文字符,英文符号)进行编码
  • Unicode编码表 是对ASCII码表的扩充,包含世界上所有的符号
  • 能够对世界上所有的符号进行编码
  • 4e00 - 9fa5 是(汉字范围)

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

  • ord(字符) #获取字符对应的编码

print(chr(0x65))

print(ord('马'),ord('磊'))
print(chr(39532),chr(30922))

1. 获取字符 - 取字符串的内容

a.获取单个字符:

"""

  • a.语法:字符串[下标] - 根据下标获取字符串中对应的字符
  • b.说明:字符串 - 可以说字符串值,也可以是字符串变量,
    结果是字符串的表达式都可以
    • [] - 固定写法
    • 下标 - 又叫索引,一但字符串确定字符串中的每个字符都会
    • 对应一个下标指的是字符串,表示这个字符在字符串中的位置。
    • 下标的范围是0开始到字符串长度减1,
    • 0表示第一个字符,1表示第2个,一次类推(通用的)
    • python里下标还可以-1到-字符串长度减1,-1表示倒数第一个
      c. 注意:获取单个字符的时候下标不能越界
      """
str1 = 'python'   # 'p' - 0/-6   'y':1/-5
rrr = 'python'[3]
print(rrr)

print(str1[0],str1[1])

a.语法:

  • 字符串[开始下标:结束下标:步长] - 从开始下标开始,获取到下标前为止,
    每次下标值增加步长
  • b. 说明:符串 - 可以说字符串值,也可以是字符串变量,
    结果是字符串的表达式都可以
  • [] : - 固定写法
    
  • 开始下标,结束下标 - 下标值,开始下标对应的字符可以取到,
    结束下标的字符一定取不到
    步长 - 整数,可以正的也可以负的
  • c. 注意:下标可以越界
  • 如果步长为正(从前往后获取),开始下标对应的字符一定要在结束下标对应的字符前才能获取到值
  • 如果步长为负(从后往前获取),开始下标对应的字符要在结束下标对应的字符的后面才能获取到值
str2 = '123456789abcdefg'
print(str2[2:5:2])
print()
切片的语法中可以对步长,开始下标和结束下标进行省略:
  1. 省略步长
    字符串[开始下标:结束下标] == 字符串[开始下标:结束下标:1]

  2. 省略开始下标

  • 字符串[:结束下标:步长]- 如果步长是正就从字符串开头往后去如果步长是负数就从最后一个开始往前取

  • 字符串[开始下标::步长]- 如果步长为正取到最后一个位置如果步长为负取到第一个字符位置

# 练习:1234  -> 4321
num = 1234
num_str = str(num)   # 先转换成字符串
new_num_str = num_str[::-1]   # 切片
new_num = int(new_num_str)    # 转换为数字
print(new_num*10)

1.3 遍历字符串 - 一个一个的取所有的字符串

方法一:直接遍历

  • for 变量 in 字符串:
    循环体

  • 方法二:通过遍历下标,来遍历字符串
    for 变量 in range(字符串长度)
    字符串[变量]

  • 方法三:
    len(字符串)- 获取字符串长度,返回一个数字, 字符串的个数

str = 'when i was young'
index = 0
while index < len(str3):
    print(index,str3[index])
    index += 1

for i in 'hello':
    print(i)

for char in 'hello':
    print(char)

str3 = 'when i was young'
# len(字符串)  -  获取字符串长度,返回一个数字。字符串长度指的是字符串中字符的个数
for index in range(len(str3)):#取str3的长度循环这个次数
    print(index, str3[index])#循环一次就打印一次对应的字符

index = 0
while index < len(str3):#从0开始循环
    print(index, str3[index])
    index += 1#循环一次就加一次直到取完

1.字符串相关运算

  • a.数学运算:字符串支持加法运算和乘法运算
  • 语法 字符串1 + 字符串2 - 将两个字符串拼接在一起
  • 产生一个新的字符串
str1 = 'abc'+'123'
print(str1)
str1 += '你好!'
print(str1)
注意:加号两边,必须都是数字,或者都是字符串,
数字和字符串不能混合相加!
语法:字符串正整数 - 正整数字符串
  • 指定的字符串重复的指定的次数,产生一个新的字符
b.比较运算符:字符串支持所有的比较运算符
  • 字符串1==字符串2, 字符串1!=字符串2 -判断两个字符串是否相等

  • 字符串对比大小,是让两个字符串中的字符相同位置的字符一一比较

  • 找到一对不相等的字符,判断编码值的大小

char = 'a'

应用:

# 判断一个字符是否是字母: 'a' <= char <= 'z' or 'A' <=  char <= 'Z'
# 判断一个字符是否是数字: '0' <= char <= '9'
# 判断一个字符是否是中文(4e00~9fa5): '\u4e00' <= char <= '\u9fa5'  /  0x4e00 <= ord(char) <= 0x9fa5
print('\u4e00' <= char <= '\u9fa5')
print('一' <= char <= '龥')
  • 练习:输入一个任意一个字符串,统计输入的内容中的字母的个数
x = str(input('输入:'))
jc = 0
for i in x:
    if 'a' <=  i  <= 'z' or 'A' <= i <= 'Z':
        jc = jc + 1
print('字母的个数',jc)

3. in 和 not in 操作

  • 字符串1 in 字符串2 - 判断字符串1是否在字符串中
  • (判断字符串2中是否包含字符串1)
  • 字符串1 not in 字符串2 - 判断字符串1是否不在字符串2中
  • (判断字符串2中是否不包含字符串1)

常用内置函数

  • len(字符串) - 求字符串长度
  • str (数字) - 将其他数据转换成字符,
  • python里面所有的数据都能转换成字符串;转换完成直接在数据的外面加引号
  • 字符串转整型去掉引号后,本身就是一个整数的字符才能转换成整型
  • 去掉引号后本身是一个数字的字符串才能转换成浮点型

字符串 转换bool 除了空串是false,其他都是True

所有的数据类型都能转化成字符串

5. 字符串的对象方法

  • 字符串.方法()

  • 字符串.caapitallize() - 将字符串第一个字母大写

  • 字符串.center(width,fillchar)

  • 产生一个长度为windth的新的字符串,剩余的部分用fillchar填充

  • 字符串.ljust(windt,fillchar)

  • 字符串.rjust(width,fillchar)(像右对齐)

  • 字符串.zfill(width) - 产生一个宽度是wiidth的字符串,

  • 原字符串在右边,前面用0填充

# 字符串.center(width, fillchar)
# -  产生一个长度为width的新的字符串,新字符串中原字符串居中,剩余的部分用fillchar填充
new_str = str4.center(11, '0')
print(new_str)

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

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

# 字符串.ljust(width, fillchar)
new_str = str4.ljust(11, '=')
print(new_str)

# 字符串.rjust(width, fillchar)
# py1901001\py1901002\py1901010
num = 1    # 001
# num = 10   # 010
study_id = str(num).rjust(3, '0')
print(study_id)

# 字符串.zfill(width)   - 产生一个宽度是width的字符串,原字符串在右边,前用0填充
study_id = str(num).zfill(4)
print(study_id)

你可能感兴趣的:(day6- sting1)