整形与浮点型/字符串类型/列表内置方法/可变不可变

内容回顾
成员运算

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

posted @ 2021-06-02 21:24  Aisa  阅读(84)  评论(0)    收藏  举报