| 数据类型 | 英文表示 | 示例 | 作用 |
|---|---|---|---|
| 整型 | int() | age = 18 | 用来记录人的年龄,人数等整数相关的状态 |
| 浮点型 | float() | heght = 178.50 | 用来记录人的身高,体重等小数相关的状态 |
| 字符串 | str() | name = ‘jason’ ; name = “”“jason”“”; name = ‘’‘jason’‘’ | 用来记录人的名字,住址等描述性质的状态 |
| 字典 | dict() | info = {name:‘jason’,age :‘18’,hobby:‘read’} | 用一个变量记录多个值,但多个值是不同属性的 |
| 列表 | list() | name = [‘jason’,‘kevin’,‘tony’ ,18,{11,22}] | 用来记录多个同种属性的值 |
| 布尔值 | bool() | is_right = True | 用来记录真假这两种状态 |
| 元组 | tuple() | name = (‘jason’,‘tony’) | 能够存储多个数据,常与列表进行对比。列表可以修改数据值,元组则不可以改变。 |
| 集合 | set() | s1 = {1,2,3,4,5} | 集合只用于去重以及关系运算 |
2.输出:input(‘输入内容’)
input获取到的用户输入都会转成字符串类型
print()
可直接打印数据值以及多个数据值
- 2.1:格式化输出
1.%s:支持所欲数据类型替换
print("您的姓名%s,您的爱好是%s,您目前的身高为%s" % ('张三','敲代码',183))
2.%d:只支持给数字占位
print("亲爱的%d用户你好!你%d月的话费是%d,余额是%d" % (17735854901, 5, 100, 99))
3.字符串内置方法之format:
print("您的姓名{},您的爱好是{},您目前的身高为{}" .format('张三','敲代码',183))
print("您的姓名{0},您的爱好是{1},您目前的身高为{2}".format('张三','敲代码',183))
print("您的姓名{name},您的爱好是{hobby},您目前的身高为{height}".format(name = '张三',hobby = '敲代码',height = 183))
4.利用f特殊字符:
name = 'ken'
age = 20
print(f'my name is {name} my age is {age} {name} {age}')
- 2.2:产生固定数位的数据:
(三)运算符介绍 1.算数运算符eg:
一共8位,剩余的用0填充
print (‘%08d’ % 123)
| 符号 | 作用 |
|---|---|
| + | 加 |
| - | 减 |
| * | 乘 |
| / | 除 |
| // | 整除 |
| % | 取模(取余) |
| ** | 幂指数(次方) |
| 字符 | 作用 |
|---|---|
| > | 大于 |
| < | 小于 |
| >= | 大于等于 |
| <= | 小于等于 |
| == | 等于 |
| != | 不等于 |
| 符号 | 作用 | 补充说明(判断时遇到数据值) |
|---|---|---|
| and | 同时满足所有条件才能输出True | 数据值直接转换为布尔值进行判断 |
| or | 只要有一个条件满足就可输出Ture,同时所有条件都满足也可输出True | 数据值直接转换为布尔值进行判断 |
| not | 讲条件去反,原条件正确则错误,原条件错误即正确。 | 本身就是一个布尔值 |
4.成员运算符三者一起用的情况下,要考虑优先级顺序:
()> not > and > or
| 符号 | 作用 |
|---|---|
| in | 表示在什么什么之内 |
| not in | 表示不在什么什么之内 |
| 符号 | 作用 |
|---|---|
| is | 判断数据值在内存中地址是否一致 |
| == | 判断数据值是否一致,不在乎内存中地址。 |
6.多种赋值符号:id():该方法会返回一串数字,相当于内存地址。
- 6.1:链式赋值
多个变量绑定同一个数据值
x = 10 y = x z = y print (x,y,z)
- 6.2:交叉赋值
两个变量所分别绑定的数据值进行交换绑定
m =199 n = 100 m,n = n,m print(m,n)
- 6.3:索引赋值
通过索引把值赋给一个变量
l1 = ['jason',123] a = l1[0] print(a)
- 6.4:解压赋值
给多个变量一起赋值,前提是变量要与数据值保持一致
name_list = ['张三','李四','王五'] name1,name2,name3 = name_list print (name1,name2,name3)(四)流程控制理论 1.概念:
- 1.1:顺序结构
从上往下一次按顺序执行
- 1.2:分支结构
根据条件的不同执行不同的代码
- 1.3:循环结构
2.流程控制之分支结构根据条件的判断绝对是否一直做某件事,不过循环结构有终止条件
- 2.1:单if分支:
if 条件: 条件成立执行的代码称为子代码
- 2.2:if+else分支:
if 条件: 条件成立之后执行的代码 else: 条件不成立执行的子代码
- 2.3:if+elif+else分支(elif 和 else都不能单独使用 必须结合if):
if 条件1: 条件1成立执行的子代码 elif 条件2: 条件1不成立 条件2成立执行的子代码 elif 条件3: 条件1和2都不成立 条件3成立执行的子代码 else: 上述所有的条件都不成立执行的子代码
- 2.4:if嵌套使用:
3.流程控制之循环结构注意从属关系;
父代码与子代码要保证相同的缩进量;
- 3.1:循环结构之while 循环
3.1.1:while 循环样式
while 条件: 条件成立之后循环执行的子代码
3.1.2:while+break
结束循环体的方式之一
while True:
print('11')
break # 一个break只能结束他所在层级的那层循环
3.1.3:while+continue
结束本次循环,直接开始下一次循环
while True:
print(123)
while True:
print(321)
continue # 与break一样,也只影响它本身所在的那一层循环
continue
3.1.4:while+else
当while循环正常执行,中间没有break强制停止的情况下,会执else后面的语句。如果while语句中有break,就不会执行。
加入break
count = 1 while count < 11: print(count) if count == 7: break count += 1 else: print('结束') # 1 2 3 4 5 6 7
去掉break
count = 1 while count < 11: print(count) count += 1 else: print('结束') # 1 2 3 4 5 6 7 8 9 10 结束
- 3.2:循环结构之for循环
3.2.1:for循环语法结构
for name in name_list:
# for 变量名 in 可迭代对象(字符串,列表,字典,元组)
for循环的循环体代码
print(name)
3.2.2:for ···range(range方法)
# 括号内只有一个数字 那么就是从0开始到数字减一结束(顾头不顾尾 左包含右不包含)
for i in range(5):
print(i) # 0 1 2 3 4
# 括号内有两个数字 第一个是起始位置(包含) 第二个是终止位置(不含)
for i in range(1,10):
print(i) # 1 2 3 4 5 6 7 8 9
# 括号内有三个数字 最后一个是数据的间隔数(等差数列)
for i in range(0,100,20):
print(i) # 0 20 40 60 80
3.2.3:for+break:
# 1-10,5结束
# break结束它本身所在的那层循环
for i in range(1,11):
if i == 5:
break
print(i) # 1 2 3 4
3.2.4:for+continue
# 1-10,4跳过
# continue也能够结束所在的那一次for循环 直接开始下一次
for i in range(1,8):
if i == 4:
continue
print(i) # 1 2 3 5 6 7
3.2.5:for+else
else配合for一起使用 当for循环没有被强制结束的情况下 循环体结束之后运行else子代码
加入break
for i in range(8): print(i) if i == 5: break else: print('加油') # 0 1 2 3 4 5
(五)数据类型的内置方法 1.整型(int)去掉break
for i in range(8): print(i) else: print('加油') # 0 1 2 3 4 5 6 7 8 加油
- 1.1:类型转换
字符串及内部纯数字可以转换,内部若混有字母或者有小数点都会报错!!!
- 1.2:进制转换
| 关键字 | 功能 |
|---|---|
| bin() | 将十进制转二进制 |
| oct() | 将十进制转八进制 |
| hex() | 将十进制转十六进制 |
- 2.1:类型转换
3.字符串(str)可以识别一个小数点,不可以识别字母以及多个小数点!!!
对布尔值默认
True为1.0
False为0.0
- 3.1:类型转换
兼容所有数据
- 3.2:常见方法
3.2.1:索引取值:单个字符 支持负数
s1 = 'hello jason!' print(s1[0]) # h print(s1[-1]) # ! print(s1[-2]) # n
3.2.2:切片取值:支持多个字符,支持负数,切片的顺序默认从左往右
s1 = 'hello jason!' print(s1[0:3]) # hel 从索引0的位置开始切到索引2的位置 顾头不顾尾 print(s1[-1:-4]) # 切片的顺序默认从左往右,相互冲突,所以无法打印 print(s1[-1:-4:-1]) # !no 可以通过第三个参数的正负一 控制方向 print(s1[-4:-1]) # son 顾头不顾尾
3.3.3:间隔/方向
s1 = 'hello jason!' print(s1[:]) # 取所有值 print(s1[::2]) # 针对整个字符串 隔一个取一个 print(s1[0:5:1]) # hello 默认1可以不写() print(s1[0:5:2]) # hlo 隔一个取一个
3.3.4:统计字符串中字符的个数
s1 = 'hello jason!' print(len(s1)) # 12 print(len('hello jason!')) # 12 空格也算字符
3.3.5:移除字符串首位指导的字符
name = ' jason ' print(len(name)) # 显示会有九位数,空格也算在内 print(name.strip(), len(name.strip())) # jason 5位数除了可以移除空格以外,还可移除其他符号
desc1 = '$$jason$$' print(desc1.strip('$')) # jason print(desc1.lstrip('$')) # jason$$ 移到left(左边) print(desc1.rstrip('$')) # $$jason 移到right(右边)
3.3.6:按照指定的字符切割字符串
使用条件:如果字符串中出现了连续的特征符号,则优先考虑使用切割操作info = 'jason|123|read' res = info.split('|') # 切割字符串之后结果是一个列表 print(res, type(res)) # ['jason', '123', 'read']其他用法
print(info.split('|', maxsplit=1)) # 从左往右 只切一次 结果一就是一个列表 ['jason', '123|read'] print(info.rsplit('|', maxsplit=1)) # 从右往左 只切一次 结果依旧是一个列表 ['jason|123', 'read']
3.3.7:字符串大小写相关
s1 = 'Hello World 666 我是python小白' print(s1.lower()) # hello world 666 我是python小白 print(s1.upper()) # HELLO WORLD 666 我是PYTHON小白 # 判断字符串中所有的字母是否是全小写 print(s1.islower()) # False print('aaa'.islower()) # True # 判断字符串中所有的字母是否是全大写 print(s1.isupper()) # False print('AAA'.isupper()) # True
3.3.8:统计字符串中指定字符出现的次数
res = 'sdashdjasdwjjkashdjasdjqwhasjdjahdjwqhdjkasdhwsdaadadadadad' print(res.count('j')) # 出现9次 print(res.count('ad')) # 出现5次
3.3.9:判断字符串的开头或者结尾
str = 'my name is ken how are you' # 判断开头 print(str.startswith('my')) # True print(str.startswith('m')) # True print(str.startswith('b')) # False # 判断结尾 print(str.endswith('you')) # True
3.3.10:字符串的替换
res = 'jason jason jason NB NB NB' # 从左往右全部替换 print(res.replace('jason', 'tony')) # tony tony tony NB NB NB # 从左往右替换指定个数 print(res.replace('jason', 'tony', 1)) # tony jason jason NB NB NB
3.3.11:字符串的拼接
# join方法拼接 print(''.join(['hello', 'world', 'hahaha'])) # helloworldhahaha print('|'.join(['hello', 'world', 'hahaha'])) # hello|world|hahaha
3.3.12:判断字符串中是否是纯数字
print('123'.isdigit()) # True print('123a'.isdigit()) # False print(''.isdigit()) # False
3.3.13:查找某个字符对应的索引值
res = 'hello world jason' # 方法一: print(res.index('d')) # 10 # 方法二: print(res.find('d')) # 10
3.3.14:正文相关操作
res = 'my name is jason' # 将所有单词首字母大写 print(res.title()) # My Name Is Jason # 将第一个英语的首字母大写 print(res.capitalize()) # My name is jason
- 3.3:总结关键字
| 关键字 | 作用 |
|---|---|
| len | 统计字符串中字符的数据(空格也算字符) |
| .strip | 移除字符两边的空格或指定字符 |
| .lstrip | 移除字符左边的空格或指定字符 |
| .rstrip | 移除字符右边的空格或指定字符 |
| .split | 按照指定的字符切割字符串 |
| print(变量名.split(‘字符’, maxsplit=1)) | 从左往右 只切一次 |
| print(变量名.split(‘字符’, maxsplit=1)) | 从右往左 只切一次 |
| .lower | 变为小写 |
| .upper | 变为大写 |
| .islower | 判断是否为小写 |
| .isupper | 判断是否为大写 |
| .count | 统计字符串中指定字符出现的次数 |
| .startswith | 判断字符串的开头 |
| .endswith | 判断字符串的结尾 |
| .replace | 字符串从左往右全部替换 |
| .join | 字符串的拼接 |
| .isdigit | 判断字符串中是否是纯数字 |
| .index | index查找索引 如果没有则报错 |
| .find | find查找索引 如果没有则返回-1 |
| .title | 将正文所有单词首字母大写 |
| .capitalize | 将正文第一个英语的首字母大写 |
- 4.1 类型转换
数字(整型,浮点型)不能实现转换;
字符串可以转换成列表;
字典只有K键参与转换
能够被for循环的数据类型都可以转换成列表
- 4.2 常见方法
4.2.1:索引取值(相同于字符串取索引值)
l1 = ['jason', 'kevin', 'oscar', 'tony'] print(l1[0]) #jason print(l1[-1]) #tony
4.2.2:切片操作
l1 = ['jason', 'kevin', 'oscar', 'tony'] print(l1[0:3]) # ['jason', 'kevin', 'oscar'] print(l1[:]) # ['jason', 'kevin', 'oscar', 'tony'] print(l1[-4:-1]) # ['jason', 'kevin', 'oscar']
4.2.3:间隔/方向
l1 = ['jason', 'kevin', 'oscar', 'tony'] print(l1[::2]) # ['jason', 'oscar']
4.2.4:统计列表中数据值的个数
l1 = ['jason', 'kevin', 'oscar', 'tony'] print(len(l1)) # 4



