一.recode
1.变量
#变量名 = 值
#变量名 - 标识符,不能是关键字
# 见名知义,所有字母小写多个单词隔开,不能使用系统内置函数名
a = b = 100
a1, b1, c1 = 100, 200, 300
a2 = 10; b2 = 20
2.运算符
数学运算符,比较运算符,逻辑运算符,赋值运算符
10 <= a <= 20
逻辑运算符对象和结果都是布尔值
赋值运算符,左边必须是变量,复合的赋值运算右边不能有其他的赋值运算符
3.分之结构
if,if-else,if-elif-else
4.循环结构
for:
for 变量 in 序列:
循环体
else:
语句块
while
while 条件语句:
循环体
else:
语句块
5.continue,break
二.string01
1.什么是字符串(str)
字符串是python内置的一种容器型数据类型,不可变,有序;
将单引号或者双引号作为容器,里面可以根据情况放多个字符
不可变:指的是内容的值和顺序不可变
有序:一旦字符串确定,字符串中字符的位置就固定(每个字符是第几个字符是确定的)
2.字符串中的内容 - 字符
python中只有字符的概念,没有字符对应的数据类型
字符串的基本单元就是字符,又叫字符串的元素
a. 基本字符 - 数字,字母,常用符号,中文,日语,韩语等
'12'
'国际大旮旯噶噶啥'
'*&%**&^*'
b. 转义字符 - 通过转义符号\后面跟不同的符号来表示特殊功能或者特殊意义的字符
\n - 换行
' - 一个单引号
" - 一个双引号
\ - 一个反斜杠
\t - 制表符
str1 = "a\'bc\n1\"23\\n000"
print(str1
c .编码字符 - \u后面跟4位的十六进制数,来表示一个字符.这个4位的16进制数对应的值是字符的编码值
str3 = 'abc+\u4e00'
print(str3)
3.字符编码
python中的字符采用的是Unicode编码
计算机存储数据的时候只能存数字,而且存的是数字的补码(是以二进制的格式进行存储)
100 #十进制数
print(bin(100)) #bin(数字) - 获取指定数字对应的二进制
print(oct(100), 0o144) #oct(数字) - 获取指定数字对应的八进制
print(hex(100), 0x64) #hex(数字) - 获取指定数字对应的十六进制
print(chr(0x2c80))
编码: 每个字符在计算机中存储的时候都会对应一个固定且唯一的数字,这个数字就是字符的编码.每个字符和数字的一一对应的关系就是编码表,常见的编码表有:ASCII码表和Unicode编码表.
ASCII码表只对数字字符,字母字符,英文符号进行编码
Unicode编码表是对ASCII表的扩充,能够对世界上所有的符号进行编码
chr(编码值) - 获取编码值对应的字符
ord(字符) - 获取字符对应的编码值,注意:字符值就是长度为1的字符串
num = 0
for code in range(0x4e00, 0x9fa5):
print(chr(code), end='')
num += 1
if num % 20 == 0:
print()
print(num)
print(ord('高'), ord('旭'))
str3 = '\u4fff\u5faa'
print(str3)
print('高' > '旭') # True
三.string02
1. 获取字符 - 取字符串的内容
1.1 获取单个字符
a.语法:字符串[下标] - 根据下标获取字符串中对应的字符
b.说明:字符串 - 可以是字符串值,也可以是字符串变量,结果是字符串的表达式等都可以
[] - 固定写法
下标 - 又叫索引,一旦字符串确定,那么字符串中的每个字符都会对应一个下标,
表示这个字符在字符串中的位置.下标的范围是0~字符串的长度减1,
0表示第一个字符,1表示第二个,以此类推.(通用的)
下标范围还可以是-1~-字符串长度减1,-1表示倒数第一个
c.注意:获取单个字符的时候下标不能越界
str1 = 'python' # 'p' : 0/-6
result = 'python'[3]
print(result)
print(str1[0],str1[-6],str1[-1],str1[-2])
# print(str1[100]) #IndexError: string index out of range
1.2获取部分字符(字符串切片)
a.语法:字符串[开始下标:结束下标:步长] - 从开始下标开始,获取到结束下标前为止每次下标值增加步长;结果是字符串
b.说明:字符串 - 可以是字符串值,也可以是字符串变量,结果是字符串的表达式等都可以
[],: - 固定写法
开始下标,结束下标 - 下标值,开始下标可以取到,结束下标对应的字符一定取不到
步长 - 整数,可以是正的也可以是负的
c.注意:下标可以越界
如果步长为正(从前往后获取),开始下标对应的字符要在结束下标对应的字符前才能获取到值
如果步长为负(从后往前获取),开始下标对应的字符要在结束下标对应的字符的后面才能获取到值
str2 = 'abcdef123456'
print(str2[0:4:1])
print(str2[-2:-10:-2]) #531e
print(str2[0:100:1]) # 下标可以越界
切片的语法中可以对步长,开始下标和结束下标进行省略:
1.省略步长(步长默认为1)
字符串[开始下标:结束下标] == 字符串[开始下标:结束下标:1]
2.省略开始下标
字符串[:结束下标:步长] - 如果步长是正,从字符串开头往后取;如果步长为负,从字符串最后一个字符往前取
字符串[开始下标::步长] - 如果步长为正,取到最后一个字符为止;如果步长为负,取到第一个字符为止
str2 = 'abcdef123456'
print(str2[2:5]) # 'cde'
print(str2[-4:-1]) # '345'
print(str2[:3:1])
print(str2[:3:-1])
print(str2[2:]) #'cdef123456'
print(str2[2::-1]) #'cba'
print(str2[::-1]) #'654321fedcba'
#练习: 1234 -> 4321
num = 1234
print(str(num)[::-1])
1.3遍历字符串 - 一个一个的取出所有的字符
方法一:直接遍历
for 变量 in 字符串:
循环体
方法二:通过遍历下标,来遍历字符串
for 变量 in range(字符串长度):
字符串[变量]
for char in 'hello':
print(char)
str3 = 'when i was young'
#len(字符串) - 获取字符长度,返回一个数字,字符长度指的是字符串中字符的个数
for in index range(len(str3)):
print(index, str3[index])
index = 0
while index
四.string03
1.字符串相关运算
a.数学运算:字符串支持加法运算和乘法运算
语法: 字符串1 + 字符串2 - 将两个字符串拼接在一起产生一个新的字符串
new_str1 = 'abc' + '123'
print(new_str1)
new_str1 += '你好!'
print(new_str1)
#注意:加号两边,必须都是数字,或者都是字符串,数字和字符串不能混合相加
# new_str1 = 'abc' + 123 # TypeError: must be str, not int
乘法 语法: 字符串 * 正整数 / 正整数 * 字符串 - 指定的字符串重复指定次数,产生一个新的字符串
print('abc' * 3) # abcabcabc
b.比较运算:字符串支持所有的比较运算符
字符串1==字符串2, 字符串1 != 字符串2 - 判断两个字符串是否相等
print('abc' == 'abc')
print('abc' == 'acb')
print('abc' != 'acb')
字符串比较大小:让两个字符串中相同位置的字符一一比较(从前往后),找到第一个不相等的字符,判断编码值的大小
print('abcdef' > 'abz') #False
print('abc1' > 'abc') #True
print('abc-1' > 'abc') #True
应用:
判断一个字符是否是字母: 'a' <= char <= 'z' or 'A' <= char <= 'Z'
判断一个字符是否是数字: '0' <= char <= '9'
判断一个字符是否是中文(4e00~9fa5): '\u4e00'<=char <='\u9fa5' / 0x4e00 <= ord(char) <= 0x9fa5
#练习:输入一个任意的字符串,统计输入的内容中字母的个数
value = input('请输入任意内容:')
count = 0
for char in value:
if 'a' <= char <= 'z' or 'A' <= char <= 'Z':
count += 1
print('字母的个数', count)
3. in 和 not in 操作
字符串1 in 字符串2 - 判断字符串1是否在字符串2中(判断字符串2中是否包含字符串1)
字符串1 not in 字符串2 - 判断字符串1是否不在字符串2中(判断字符串2中是否不包含字符串1)
print('abc' in '123abc89503k') # True
print('abc' in 'a123bcsdghakl') # False
print('abc' not in 'a123bcsdghakl') #True
4.常用内置函数
len(字符串) - 求字符串长度
str(数据) - 将其他数据转换成字符,所有的数据都能转换成字符串,转换的时候直接在数据的外面加引号
print(int('23')) # 只有去掉引号后,本身就是一个整数的字符串才能转换成整型
print(float('12.4')) # 去掉引号后,本身就是一个数字的字符串才能转换成浮点型
print(bool('')) #除了空串会转换成False,其他的都会转换成True
str2 = ' '
if str2:
print('不是空串')
五.string04
1.字符串的对象方法
字符串.方法()
#字符串.capitalize() - 将字符串中首字母大写
str4 = 'hello'
new_str = str4.capitalize()
print(new_str)
# 字符串.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)
num = 1
study_id = str(num).rjust(3, '0')
print(study_id)
# 字符串.zfill(width) - 产生一个宽度是width的字符串,原字符串在右边,前用0填充
for char in 'hello':
print(char)