python入门5

for循环和数据类型内置方法

for循环

for循环能够实现的事情while循环都可以实现,

但是for循环在循环取值的时候语法更加简单快捷。

# while循环
count = 0
while count < 4:
    print('>>>:',name_list[count])
    count += 1


# for循环
for name in name_list:
print('>>>:', name)

  # for循环不需要添加结束条件,会随着取值的完毕自动结束

上面的代码值是有明确类型的,如果当值没有明确的类别时,变量名可以取i、j、k、item等。

for循环字符串会将字符串里面单个单个字符依次赋值给变量名i。

除了列表之外,for循环还可以从字典中获取值,但是for循环从字典取值字会取出字典的变量名,变量值是无法直接获取的。

 

容器类型

内部能够存档多个元素的数据类型都可以称之为容器类型,例如:列表、字典、元组、集合(不常用)。

除了容器类型,for循环还可以对字符串循环取值,获得字母与空格。

 

range用法

for i in range(0, 101):  # 本质是一个迭代器(忽略),可以简单的看成是一个列表
    print(i)

for i in range(5):
    print(i)  # 一个参数,默认从0开始(顾头不顾尾)

for i in range(5,10):
    print(i)  # 两个参数,第一个是起始位包含在内,第二个是终止位不包含(顾头不顾尾)

for i in range(0,250,25):
    print(i)  # 三个参数,最后一个是数字间隔,类似于产生等差序列

 

数据类型内置方法

查看数据类型拥有的方法,使用.即可

 

int

可以用作数据类型的转换,但是既不能把float转成int,也不能把数字之外的文本转成int。

也可以用作进制转换,把其他进制转成十进制。

以后如果看到数字前面,ob开头则是二进制数,0o开头则是八进制数,0x开头则是十六进制数。

print(bin(100))  # 0b1100100
# 将十进制转换成八进制
print(oct(100))  # 0o144
# 将十进制转换成十六进制
print(hex(100))  # 0x64


print(int('0b1100100', 2))
print(int('0o144', 8))
print(int('0x64', 16))
# 上面三个输出结果都是100

 

float

不能转换数字之外的文本。

n1 = '11'
print(float(n1))  # 11.0
n2 = '11.11'
print(float(n2))  # 11.11
n3 = 'jyb'
print(float(n3))  # 报错

 

str

可以把任意类型的数据转成字符串。

1.统计字符个数

res = 'hello world'
# 空格也算
print(len(res))  # 11

2.索引取值

res = 'hello world'
print(res[0])  # h

3.切片取值

res = 'hello world'
# 顾头不顾尾,第六位是不取的
print(res[1:5])  # ello 

4.步长(间隔)

res = 'hello world'
# 2表示间隔一个取一个,不写默认没有间隔
print(res[1:8:2])  # el o
# 取得的是e、l、空格、e

5.移除首尾指定的字符

 

6.按照指定的字符切割数据

data = 'jyb|18|worker|read'
# 以|为标识隔开
print(data.split('|')) # ['jyb', '18', 'worker', 'read']
# 正常顺序:从左往右
# maxsplit:切割几次
print(data.split('|', maxsplit=1)) # ['jyb', '18|worker|read'] # 从右往左
print(data.rsplit('|', maxsplit=1)) # ['jyb|18|worker', 'read']

7.大小写转换

res = 'Yu0My'
print(res.upper())  # 转大写  YU0MY
print(res.lower())  # 转小写  yu0my

print(res.isupper())  # 字符串是否是纯大写
print(res.islower())  # 字符串是否是纯小写

8.判断是否是纯数字

print('123'.isdigit())  # True
print('jyb123'.isdigit())  # False

9.统计字符出现的次数

res = 'my name is jyb jyb jyb jyb jyb'
print(res.count('jyb'))  # 5

10.替换指定字符

 

11.按照指定字符拼接字符串

 

列表

只能支持for循环数据类型

1.统计长度

l1 = [11, 22, 33, 44, 55, 66]
print(len(l1))  # 6

2.索引取值

l1 = [11, 22, 33, 44, 55, 66]
print(l1[0])  # 11

3.切片操作

l1 = [11, 22, 33, 44, 55, 66]
# 顾头不顾尾
print(l1[0:4])  # [11, 22, 33, 44]

4.步长

l1 = [11, 22, 33, 44, 55, 66]
# 顾头不顾尾
print(l1[0:4:2])  # [11, 33]

5.添加元素

 

6.删除元素

 

7.统计元素出现的次数

l2 = [11, 222, 33, 22, 33, 11, 11, 11, 22, 22, 33, 44, 44]
print(l2.count(11))  # 4

8.排序

l3 = [55, 44, 22, 33, 11, 99, 77, 88]
print
(l3) # [11, 22, 33, 44, 55, 77, 88, 99] # 默认是升序 l3.sort() print(l3) # [11, 22, 33, 44, 55, 77, 88, 99] # 倒序 l3.sort(reverse=True) print(l3) # [99, 88, 77, 55, 44, 33, 22, 11]

 

字典

字典内元素是无序的

1.统计长度,实际上是统计键值对的个数

user_dict = {'username': 'jyb', 'pwd': 123, 'hobby': 'read'}
print(len(user_dict))  # 3

2.按键取值

user_dict = {'username': 'jyb', 'pwd': 123, 'hobby': 'read'}
print
(user_dict['username']) # jyb
print(user_dict['xxx']) # 键不存在会直接报错
print(user_dict.get('username')) # jyb
print(user_dict.get('xxx')) # None 键不存在不会报错返回None

3.设置值

 

4.删除值

user_dict = {'username': 'jyb', 'pwd': 123, 'hobby': 'read'}
res = user_dict.pop('username')
print(user_dict, res)  # {'pwd': 123, 'hobby': 'read'}  jyb

5.小技巧

user_dict = {'username': 'jyb', 'pwd': 123, 'hobby': 'read'}
# 获得k键
print(user_dict.keys()) # ['username', 'pwd', 'hobby']
# 获得v值
print(user_dict.values()) # ['jyb', 123, 'read'] # 获得键值对
print(user_dict.items()) # [('username', 'jyb'), ('pwd', 123), ('hobby', 'read')]

 

集合

集合内元素是无序的。

功能:1.去重,2:关系运算

f1 = {'jyb', 'tony', 'kevin', 'jack'}
f2 = {'jyb', 'tom', 'jerry', 'tony'}
# 1.求两个人共同好友
print(f1 & f2)  # {'tony', 'jyb'}
# 2.求f1独有的好友
print(f1 - f2)  # {'jack', 'kevin'}
# 3.求f2独有的好友
print(f2 - f1)  # {'tom', 'jerry'}
# 4.求两个人所有的好友
print(f1 | f2)  # {'jyb', 'jerry', 'tony', 'jack', 'tom', 'kevin'}
# 5.求两个人各自的好友
print(f1 ^ f2)  # {'kevin', 'jack', 'tom', 'jerry'}
# 6.父集 子集
print(f1 > f2)
print(f1 < f2)

 

posted @ 2021-08-14 18:54  wddwyw  阅读(41)  评论(0编辑  收藏  举报