1.运算符: 数学运算符、比较运算符、逻辑运算符、赋值运算符
数学运算符: +, -, *, /, //, **, %
比较运算符: >, <, ==, !=, >=, <=
逻辑运算符:and, or, not
赋值运算符:=, +=, -=, *=, /=, //=, %=, **=
运算符的优先级: 数学运算符>比较运算符>逻辑运算符>赋值运算符
2.数字类型
整型(int): 0b(二进制)、0o(八进制)、0x(十六进制)
bin()、 oct() hex()
3. 浮点型(float): 支持科学计数法, 19e-2 0.000001 == 1e-6
布尔(bool): True == 1, False == 0
3.字符串(str)
字符串又叫字符集
'', ""
空串: '', ""
空格字符串: ' ', " "
普通字符: 'a', '1', ',', '好', '👌', '😆'
转义字符: \n, \t, ', ", \; 阻止转义: r/R
编码字符: \uXXXX 十六进制数:每一位上的数是0-9或者a-f(A-F)
4.字符的编码
a-z: 97-122
A-Z: 65-90
中文编码范围: 4e00 - 9fa5
chr(编码)
ord(字符)
getchar(获取字符)
1.获取单个字符
字符串中的每一个字符都会对应一个唯一的下标(索引)用来表示字符在字符串中的位置
下标从0开始一次增加, 0 对应的是第一个字符;可以是从-1开始一次减少,-1代表最后一个字符
例如:
num = 'hello'
print(num[4]) --> o
'\tpython\u4e00n' p - > ( 1, -7) 注意:\t 表示一个字符 \u4e00 也是一个字符
a.语法:
字符串[下标] - 获取字符串中指定下标对应的字符
b.说明:
- 字符串 - 只要是字符串的表达式都可以,例如:字符串面量,字符串变量
- [] - 固定写法
- 下标 - 需要获取的字符对应的下表;注意,这的下标不能越界
result = 'how are you!'[0] 获取字符 how are you! 中下标是0的字符
并且赋值给result
print(result) h
print('how are you!'[-4]) y
print('how are you!'[-33]) IndexError: string index out of rang
注意:下标不能越界!!
str1 = 'good good study! day day up!'
print(str1[10])
2.获取部分字符(字符串切片)
方法一:
- 语法:
字符串[开始下标:结束下标:步长] - 从开始下标开始获取到结束下标前为止,每下标的下标值加上步长获取下一个 - 说明:
字符串 - 只要是字符串的表达式都可以,例如:字符串面量,字符串变量
[] - 固定写法
开始下标、结束下标 - 下标值(这儿的下标可以越界)
步长 - 必须是整数(正数和负数都行),步长是正数,是从开始下标前往后获取 步长 是负数,是从开始下标开始从后往前获取 - 注意:
当步长位正,要求开始下标对应的字符位置必须在结束下标对应的位置的前面,否侧结果是空串
当步长位负,要求开始下标对对应的字符的位置必须在结束下标对应的位置的后面,否侧结果是空串
不管怎么取结束下标一定取不到!
str = 'hello python!'
print(str[0:4:1]) hello
print(str[-1:0:-2]) 从后往前取 !otp olh
print(str[-1:-100:-1]) 结束下标可以越界 !nohtyp olleh
练习: 获取一个字符中所有下标是奇数的字符(顺序)
str2 = 'hello python!'
print('奇数下标是:',str2[1:12:2]) el yhn
方法二:
字符串[开始下标:结束下标] - 步长就是1:从开始到结束下标为止,一个一个的取!
print('when i was young!'[2:6]) en i
方法三:
- a. 省略开始下标
字符串[:结束下标:步长] - 当步长是正数,从字符串的第一个字符开始到结束下标前为止
当步长是负数,从字符串的最后一个字符开始取到结束下标前为止 - b. 省略结束下标
字符串[开始下标:步长] - 当步长是正数,从开始下标开始是取到字符串最后一个字符为止
当步长是负数,从开始下标开始开始取到字符串的第一个字符为止
str3 = 'when i was young!'
print(str3[:6],str3[:6:-1]) when i, !gnuoy saw
print(str3[2:],str3[2::-1]) en i was young!,ehw
print(str3[6::-1])
num = 'hello'
print(num[-4])
字符串相关运算
1.字符串支持的运算符: +, *,>, <, ==, !=, >=, <=以及所有的比较运算符
Python中的字符串支持数学运算符中的 +和*,
- a. + : 字符串1 + 字符串2 - 将字符串1和字符串2拼接在一起
注意:字符串和数字不能混合相加! - b. * : 字符串 * N - N是正整数 字符串重复N次产生一个新的字符串
new_str = 'abc' + '123'
print(new_str)
new_str = 'abc' * 3
print(new_str)
- c. 比较是否相等
==,!= 可以判断两个字符串是否相等或者不相等 - d. 字符串比较大小: 从第一字符开始,依次往后找,找到第一个不相等的字符判断它们的编码值大小
谁的编码值大 ,对应的字符串就打,不会再往后比较了!
应用:
1.判断是否是小写字母: 'a' <= char <= 'z'<====> char>='a' and char<= 'z'
2.判断是否是大写字母: 'A'<= char <= 'Z'<===> char>= 'A' and char <= 'Z'
3.判断是否是字母: 'a' <= char <= 'z' or 'A'<= char <= 'Z'
3.判断是否是中文: '\u4e00'<= char <= '\u9fa5'
print('abc' == 'abc')
print('abc' == 'acb')
- 谁的字符编码大就大
print('abdcb' > 'abcde')
判断一个字符串中第三个字符是否是字母
str1 = 'skj45,skdjf'
char = str1[2]
print('是否是字母:', 'a' <= char <= 'z' or 'A'<= char <= 'Z' )
print('判断是否是中文:','\u4e00'<= char <= '\u9fa5')
2. in 和not in操作
字符串1 in 字符串2 -> 判断字符串2是否包含字符串1 / 字符串1是否是字符串2的子串
字符串1 not in 字符串2 -> 判断字符串是否不包含字符串1 / 字符串1是否是字符串2的子串
应用:判断一个文章是否包含某个文字
print('abc' in 'hello abc') # True
print('abc' not in 'hello abc') # False
print('A' in 'hello abc')
3. len函数
len(序列) - 获取序列长度,获取序列中元素的个数
len(字符串) - 获取字符串的长度 字符的个数
注意:
一个可以转移的转义字符的长度是1
一个编码字符的长度是1
一个空格的长度是1
手动在键盘上按一个tab,一般是4个空格,长度是4
print(len('abc'))
str1 = input('请输入:')
last_char = str1[len(str1)-1]
print(last_char)
str2 = '\tbac'
print(len(str2)) 手动输入的tab 和\t 对应的字符个数可能不一样,\t 永远是1
format
=====格式字符串======
1.什么是格式字符串:
在字符串中通过格式占位符来代替字符串中变化的部分,然后在后面通过数据或者变量确定变化
- 语法:
包含占位符的字符串 % (值1,值2,值3,...) - 说明:
占位符 - %s 字符串
%d 整数
%f 小数
%.nf 保留小数点后N位小数
%c 字符 (可以将数字转换成字符)
% - 固定写法
() - 固定写法,字符串中之有一个占位符的时候 这个()可以省略
值 - 值和占位符要一一对应(个数、类型、位置都要对应)
name = input('姓名:')
age = 18
sex = '男'
mesage = '我叫xx,今年xx岁,性别:x,月薪x万'
格式字符串
mesage = '我叫%s,今年%d,性别:%s,月薪%.2f万 字符:%c'% (name, age, sex,1.3, 97)
print(mesage)
练习:输入一个字符串,用一个变量保存输入的相关信息:xxx的长度是xx,最后一个字符是xxx
name = input('我的名字是:')
lenght = len(name)
last_char = name[len(name)-1]
str = '%s的长度是%d,最后一个字符是%c'% (name,lenght,last_char)
print(str)
Type conversion(类型转换)
1. 基本语法
-
语法:
类型名(数据) - 将指定的数据转换成指定类型 -
说明:
类型名 - 任何Python支持的,或者自定义的类型都可以
数据 - 需要转换的对象(类型不同要求可能不一样)
2. 转换实例
int(数据) - 将其他数据转换成整型
float(数据) - 将其他数据转换成浮点型
bool(数据) - 将其他数据转换成布尔
str(数据) - 将其他数据转换成字符串
age = input('年龄:')
print(type(age),age)
print('是否能进入网吧:',int(age) >= 18)
1.转换成整型
a = int(12.9) 浮点数可以转换,直接保留整数部分
b = int(False) 所有布尔可以转换, True -> 1 ; False ->0
c = int('12') 只有去掉字符串的引号后本身就是一个整数的字符串才能转换成整数
print(a,b,c)
2. 转换成浮点型
a = float(100) 所有整数都可以转换成浮点数 在后面加.0
b = float(True) 所有的布尔可以转换成浮点数 True ->1.0
c = float('12.4') 去电引号本身就是一个数字的字符串能转换成浮点数
print(a,b,c)
3. 转换成布尔类型
Python中所以得数据都可以转换成布尔
所有为空为0的值都会转换成False ,其他都是True
a = bool(0)
b = bool(0.0)
c = bool('')
print(a,b,c)
4. 转换成字符串类型
Python中所有的数据都可以转换成字符串,而且转换的时候就是单纯的在最外面加上引号
a = str(200)
print(a)
print('abc'+ str(100))
练习:输入三个数字,求三个数的和
dig1 = input('输入第一个数字:')
dig2 = input('输入第二个数字:')
dig3 = input('输入第三个数字:')
print(float(dig1) + float(dig2) + float(dig3))
网友评论