整形与浮点型/字符串类型/列表内置方法/可变不可变
内容回顾
成员运算
in
在
not in
不在
身份运算
==
值
is
地址
"""
值相等内存地址不一定相等
内存地址相等值一定相等
"""
流程控制
顺序结构
分支结构
循环结构
"""
代码的缩进
在python通过缩进来表示代码的从属关系
缩进一般采用四个空格
并不是所有的代码都可以拥有子代码
同属一个关键字的多行子代码一定要保持相同的缩进量
ps:遇到冒号 下一行代码必缩进
"""
if判断
"""
if 条件1:
代码1
代码2
...
elif 条件2:
代码1
代码2
...
else:
代码1
代码2
...
"""
1.组合使用之后走一个关键字的子代码
2.条件可以是逻辑运算符连接的多个条件
ps:if嵌套
while循环
"""
while 条件:
代码1
代码2
...
"""
ps:while嵌套
while+break
结束本层循环
while+continue
结束本次循环
while+else
在while没有被主动打断的情况下正常运行结束
则会走else
for循环
"""
for 变量名 in 可迭代对象: 字符串 列表 字典 元组...
代码1
代码2
...
"""
1.range()
range(10) 只写一个数字则从0开始
range(1,10) 写两个则顾头不顾尾
range(1,10,2) 第三个参数表示间隔几位
https://movie.douban.com/top250?start=0&filter=
https://movie.douban.com/top250?start=25&filter=
https://movie.douban.com/top250?start=50&filter=
https://movie.douban.com/top250?start=75&filter=
for i in range(0,255,25):
print('https://movie.douban.com/top250?start=%s&filter='%i)
# 注意python2与python3的区别
range()
xrange()
for+break
结束本层循环
for+continue
结束本次循环
for+else
在for没有被主动打断的情况下正常运行结束
则会走else
ps:for嵌套
今日内容概要
作业讲解
数据类型的内置方法
整型与浮点型
字符串
列表
可变类型与不可变类型
今日内容详细
作业讲解
猜年龄的游戏
"""
编写程序先编写程序的主题功能
然后再考虑完善
"""
age = 18
定义一个记录用户次数的变量
count = 0
猜年龄
while True:
# 先判断用户当前是第几次尝试 如果已经三次 提示用户
if count == 3:
print('你已经尝试三次了')
choice = input('您已经尝试三次了 是否还想继续(y/n)>>>:')
# 判断用户是想继续还是放弃
if choice == 'y':
count = 0 # 将用户尝试的次数清零
else:
print('欢迎下次再来哟!!!')
break
guess_age = input('请输入您的年龄>>>:')
# 将字符串的数字转为整型的数字
guess_age = int(guess_age) # 暂且忽略
if guess_age > age:
print('猜大了')
count += 1 # 加一次
elif guess_age < age:
print('猜小了')
count += 1 # 加一次
else:
print('你真棒!!!')
break
整型与浮点型
整型基本使用
1、用途
# 年龄 生日 整数类型
2、定义方式
age = 18 # age = int(18)
3、类型转换
int() 将括号内的数据转成整型
print(int(123))
print(int('123'))
print(int('[1,2,3,4]'))
print(int('hello world'))
print(int('11.11')) # 待转换的数据内部只能是纯数字
4、进制转换
print(bin(100)) # 将十进制的100转换成二进制对应的数 0b1100100
print(oct(100)) # 将十进制的100转换成八进制对应的数 0o144
print(hex(100)) # 将十进制的100转换成十六进制对应的数 0x64
"""
0b开头表示二进制数
0o开头表示八进制数
0x开头表示十六进制数
"""
print(int('0b1100100',2)) # 100
print(int('0o144',8)) # 100
print(int('0x64',16)) # 100
浮点型
身高 体重 薪资...
height = 183.1 # height = float(183.1)
print(float(183.1))
print(float('183.1'))
print(float('hello world'))
print(float(183)) # 183.0
print(int(11.11)) # 11
print(int('11.11'))
字符串类型
作用:名字,性别,国籍,地址等描述信息
定义:在单引号\双引号\三引号内,由一串字符组成
name = 'hello world!'
优先掌握的操作:
1、按索引取值(正向取+反向取) :只能取 print(name[0])
'''索引是从0开始的'''
name = 'hello world!'
print(name[0])
print(name[-1]) # -1表示最有一个元素
print(name[8])
print(name[-4])
正数表示从左往右 负数从右往左
2、切片(顾头不顾尾,步长)
print(len[n:n+1])
'''截取某一段内容'''
name = 'hello world!'
print(name[1:4]) # 顾头不顾尾 ell
print(name[-1:-5:-1]) # 默认的切片方向都是从左往右 -1修改成从右往左 !dlr
print(name[1:4:2]) # 第三个参数表示步长 el
3、长度len
在print(len(#$))
name = 'hello world!'
'''统计字符串里面的字符个数'''
print(len(name)) # 12 空格也算字符
4、成员运算in和not in
name = 'hello world!'
print('hello' in name)
print('jason' not in name)
5、移除指定的首尾字符
变量.strip(******)
name = 'hello world!'
username = input('username>>>:') # 'jason '
# 将首尾空格移除 后缀加.strup()
username = username.strip()
两步合并成一步
username = input('username>>>:').strip()
if username == 'jason':
print('登录成功')
else:
print('登录失败')
username1 = '$$j$s$o$n$$'
username2 = ' jason '
print(username1.strip('$')) # 移除指定首、尾的所有字符
print(username2.strip()) # 默认移除首、尾的所有空格
n1 = '$$jason$$'
# 移除首指定的字符
print(n1.lstrip('$')) # jason$$ left
# 移除尾指定的字符
print(n1.rstrip('$')) # $$jason right
6、切分split(******)
'''按照指定g字符串'''
res = 'jason|123|read'
print(res.split('|')) # ['jason', '123', 'read']
# 1.指定切割的字符不保留
# 2.切割之后的结构是一个列表(重要)
res.split('|', maxsplit=1) # ['jason', '123|read'] 从左往右切割指定的次数
print(res)
print(res.rsplit('|',maxsplit=1)) # ['jason|123', 'read'] 从右往左切割指定的次数
7、循环
for i in name:
print(i) # 依次获取字符串中单个单个的字符
name1 = 'jason' # str('jason')
print(type(str(18)))
print(type(str(11.11)))
print(type(str('hello')))
print(type(str([1,2,3,4])))
print(type(str({'name':'jason'})))
print(type(str(True)))
res = 'My NAmE Is JASon 666'
将所有的英文字母转成大写 upeer()
print(res.upper()) # MY NAME IS JASON 666
将所有的英文字母转成小写 lower()
print(res.lower()) # my name is jason 666
"""图片验证码校验 忽略大小写"""
code = 'NaRTs6'
my_code = input('code>>>:')
if code.upper() == my_code.upper():
print('验证码正确')
print(res.isupper()) # False 字符串内部所有的英文字母是否是全大写
print(res.islower()) # False 字符串内部所有的英文字母是否是全小写
startswith() endswith() 判断开头结尾
res = 'jason egon kevin tony'
判断字符串是否以jason开头
print(res.startswith('jason')) # True
判断字符串是否以tony结尾
print(res.endswith('tony')) # True
字符串格式化输出
%s %d 变量
format 变量
第一种 与%s一致 按照个数位置 一一传值
res = 'my name is {%s} my age is {%d}'
print(res.format('jason',18))
第二种 按照索引取值 可以反复使用
res = 'my name is {0} my age is {1} {0} {0} {0}'
print(res.format('jason',18))
第三种 指名道姓取值 可以反复使用
res = 'my name is {name} my age is {age} {name} {name} {name}'
print(res.format(name='jason',age=18))
res = 'jason a a a a sdf se sdf we ras dsa dw e asdsa dwqd sadsa dsadas'
# 统计字符串中 指定字符出现的个数
print(res.count('a')) # 13
print(res.count('a', 1, 10)) # 3 指定范围统计
res = 'my name is jason HAJHSSAJJ SAJS '
print(res.title()) # 将所有英文单词首字母大写
print(res.capitalize()) # 首字母大写 后面统一变小写
res = 'sdewqe圣诞节卡萨'
print(res.isalpha()) # 判断非数字 特殊符号
判断是否是纯数字
guess_age = input('请输入您的年龄>>>:')
# 判断用户输入的是否是纯数字
if guess_age.isdigit():
# 将字符串的数字转为整型的数字
guess_age = int(guess_age) # 暂且忽略
else:
print('请输入纯数字')
替换
res = 'my name is egon egon egon'
将字符串中所有的egon替换成SB
print(res.replace('egon','SB')) # 全局替换
print(res.replace('egon','SB',1)) # 局部替换
将列表多个元素拼接成字符串
res = ['jason','egon','kevin','tony']
res1 = ['jason','egon','kevin','tony',123]
# print('|'.join(res)) # jason|egon|kevin|tony
print('|'.join(res1)) # 只能是字符串类型拼接
列表内置方法
中括号括起来 内存可以存放多个元素
元素与元素之间逗号隔开 元素可以是任意数据类型
name_list = ['jason', 'egon', 'tony']
name_list = list(['jason', 'egon', 'tony'])
print(type(list(18))) # 不能
print(type(list(11.11))) # 不能
print(type(list('hello')),list('hello')) # 可以 ['h', 'e', 'l', 'l', 'o']
print(type(list([1,2,3,4])))
print(type(list({'name':'jason'})),list({'name':'jason'})) # 可以 ['name']
print(type(list(True))) # 不能
'''能够支持for循环的数据 都能够被list转换成列表'''
1.索引取值
print(name_list[0]) jason
print(name_list[-1]) tony
2.切片操作
name_list = list(['jason', 'egon', 'tony'])
print(name_list[0:2]) ['jason', 'egon']
print(name_list[0:2:2]) ['jason']
print(name_list[-1:-3:-1]) ['tony', 'egon']
3.统计列表中元素的个数 :len
print(len(name_list)) # 3
列表元素的Curd(增删改查)
name_list = list(['jason', 'egon', 'tony'])
name_list[1] = 'egon快回来!'
print(name_list) ['jason', 'egon快回来!', 'tony']
末尾追加单个元素 append
name_list.append('kevin')
print(name_list) # ['jason', 'egon', 'tony', 'kevin']
name_list.append([11,22,33,44])
print(name_list) # ['jason', 'egon', 'tony', [11, 22, 33, 44]]
插入元素
name_list.insert(0,'jack')
print(name_list) # ['jack', 'jason', 'egon', 'tony']
扩展列表
l1 = [11,22,33,44,55,66,77]
# for i in l1:
# name_list.append(i)
# print(name_list)
name_list.extend(l1) # extend等价于for+append
print(name_list) # ['jason', 'egon', 'tony', 11, 22, 33, 44, 55, 66, 77]
通用的删除操作
del name_list[1]
print(name_list) # ['jason', 'tony']
res1 = name_list.remove('tony') # 指名道姓的删除
print(name_list) # ['jason', 'egon']
print(res1) # None
res = name_list.pop() # 默认尾部弹出元素
print(name_list) # ['jason', 'egon']
print(res)
res = name_list.pop(1) # 默认指定索引位置的元素
print(name_list) # ['jason', 'tony']
print(res) # egon
l1 = [11,22,33,3,3,3,2,3,23,4,34,3,4,3,4]
print(l1.count(3)) # 6 统计列表中某个元素出现的次数
name_list.clear() # 清空列表
print(name_list) # []
l2 = [11,88,22,44,33,77,66,55]
# l2.sort() # 排序 默认是升序
# print(l2) # [11, 22, 33, 44, 55, 66, 77, 88]
l2.sort(reverse=True) # reverse=True 降序
print(l2) # [88, 77, 66, 55, 44, 33, 22, 11]
l2.reverse() # 倒序
print(l2)
可变不可变
"""
可变类型
值改变 内存地址不变
不可变类型
值改变 内存地址一定变
"""
不可变类型
a = 1
print(id(a)) # 140736875403024
a = 2
print(id(a)) # 140736875403024
可变类型
l1 = [11,22]
print(id(l1)) # 2133952624128
l1.append(666)
print(id(l1)) # 2133952624128

浙公网安备 33010602011771号