2019-10-22(python第二天)(下)

python中常用数据类型:

  • number
  • 字符串
  • 列表(list)
  • 元组(tuple)
  • 字典(dict)
  • 集合(set)

1. 列表(list):

  • 相同点:python中的列表和c中的数组很像
  • 不同点:python可用存储不同的数据类型

创建一个列表

list1 = [1887,'雪碧','xb']
print(type(list1))
print(list1)

[1887, '雪碧', 'xb']

遍历列表:把元素一个个取出来

for 临时变量 in 可迭代对象
for i in list1:
    print(i)

列表的“增删改查”

  • (增)列表的增加操作:

【练习1】 创建一个[0,1,...,10]的列表

a = []
for i in range(0,11):
    a.append(i)
print(a)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

【练习2】列表的“增删改查”的训练

  • (增)遍历来给空列表增加元素:
skill_list = []
for i in range(1,5):
    skill = '技能' + str(i)    # 强制转换类型
    # 向列表尾部添加元素
    skill_list.append(skill)
print(skill_list)
['技能1', '技能2', '技能3', '技能4']
  • (查)查询——访问:
# 访问skill_list的第二个元素
print(skill_list[1])
技能2
  • (查)查询——判断:
# 判断a列表中是否有9这个数字
if 9 in a:
    print('9在a中')
if 11 not in a:
    print('11不在a中')
9在a中
11不在a中
  • (删)删除:
# 删除技能2这个元素
# del 要删除的列表名[索引]
del skill_list[1]
print('删除后',skill_list)
删除后 ['技能1', '技能3', '技能4']
  • (改)修改:
# 修改skill_list最后一个元素为垂直打击
skill_list[2] = '垂直打击'
print('修改后',skill_list)
修改后 ['技能1', '技能3', '垂直打击']

2. 元组

和列表相似(可存不同的数据类型),但不能进行修改

创建元组,用()表示元组

a = (2019,'雪碧','xb')
print(type(a))
print(a)

(2019, '雪碧', 'xb')

修改元组(会报错)

print(a[0])
# a[0] = 22
# print(a)
TypeError: 'tuple' object does not support item assignment

tuple优点:

  1. 元组的运行速度比列表快
  2. 不能修改所带来的安全性高(受保护)
  3. 元组常被作为字典的键来使用
注意区分:
b = ()    #代表 空元组
c = ('xb')    #代表字符串
d = (22)    #代表优先运算
e = (22,)    #代表元组
f = (22,22)    #代表元组
print(type(b))
print(type(c))
print(type(d))
print(type(e))
print(type(f))





3. 字符串

字符串创建:可使用单引号、双引号、三个单引号(跨行输出)

str1 = 'neusoft'
str2 = "雪碧"
str3 = '00"雪碧"00'    #不会报错,但其他编程语言会报错
str4 = "今天是'星期二'"
# str5 = '哈哈'呵呵'哈哈'    #报错
print(str1, str2, str3, str4)
neusoft 雪碧 00"雪碧"00 今天是'星期二'
插曲: len()内置函数:用于检测容器内元素的个数(列表、元组、字典均可用)
print(len(str1))
7
插曲: * 和 + 操作:*为复制,+为连接
print(str1*3)
print(str1+str(3))
print(str1+'3')    #跟上一个输出语句一样的意思
neusoftneusoftneusoft
neusoft3
neusoft3
插曲:字符串的格式化输出
format()函数,用{}代替变量,然后把变量值赋予给{}

'{}字符串{}...{}'.format(变量1,变量2,...)

hero = 'Hiro'
grade = 100
print('你当前的英雄是{},等级为{}'.format(hero,grade))
你当前的英雄是Hiro,等级为100

字符串的常用操作

  • replace(),替代
price = '¥1998'
price = price.replace('¥','')    #重新赋值
print(price)
print(type(price))
1998

  • strip(),常用于登录时服务器后端会进行去空格操作,以便核对
name = '  god is a girl  '
print(len(name))
name = name.strip()
print(len(name))
17
13
  • join(),主要应用于把列表变成字符串,列表与列表间的连接符可以自定义
str_intro = ''    #空格做连接符
# str_intro = '_'    #下划线做连接符
# str_intro = '/'    #斜杠做连接符
# str_intro = '\'    #报错,因为'\'代表转义符号
# str_intro = '\\'    #双反斜杠做连接符
li = ['I Love LYS']
str5 = str_intro.join(li)
print(str5)
print(' '.join(li))    #三行合成一行
I Love LYS
I Love LYS

4. 字典

使用{}创建字典,字典中的每一个元素都以键值对的形式存在,中间用冒号隔开

【练习】字典的“增删改查”训练
创建字典

student_info = {'name': 'Hiro', 'addr': 'Japan', 'age': 28}
  • (查)字典的访问,通过键访问值

字典名.get(键,...),可解决访问键不存在时报错的情况:

  • 当字典中存在这个键时,正常返回该值
  • 当字典中不存在该键时,返回none值,并且可以设置默认返回值
print(student_info['name'])
print(student_info.get('sex','hobby'))
Hiro
hobby
  • (改)字典的修改,访问键后赋值,即直接修改
student_info['age'] = 20
print(student_info)
{'name': 'Hiro', 'addr': 'Japan', 'age': 20}
  • (增)当字典中不存在此键时,会在字典最后增加新键和值
student_info['sex'] = 'female'
print(student_info)
{'name': 'Hiro', 'addr': 'Japan', 'age': 20, 'sex': 'female'}
  • (删)删除键:del 字典名['键']
del student_info['sex']
print(student_info)
{'name': 'Hiro', 'addr': 'Japan', 'age': 20}
  • 返回字典所有的键keys:字典名.keys()
print(student_info.keys())
dict_keys(['name', 'addr', 'age'])
  • 返回字典中所有的值values:字典名.values()
print(student_info.values())
dict_values(['Hiro', 'Japan', 20])
  • 返回所有的键值对:字典名.items()
    (返回形式为列表中的每一个元素都是一个元组)
print(student_info.items())
dict_items([('name', 'Hiro'), ('addr', 'Japan'), ('age', 20)])
  • 把键值对转化成字典:用到强制转换类型——dict()
student_info_list = student_info.items()   
print(dict(student_info_list))
{'name': 'Hiro', 'addr': 'Japan', 'age': 20}

  • 字典的键和值全部遍历输出
for k, v in stu_info.items():
    print(k, v)
name Hiro
addr Japan
age 20
  • 字典的键遍历输出
print(student_info)
for x in student_info:
    print(x)
{'name': 'Hiro', 'addr': 'Japan', 'age': 20}
name
addr
age
  • 字典的值遍历输出
print(student_info)
for x in student_info:
    print(student_info[x])
{'name': 'Hiro', 'addr': 'Japan', 'age': 20}
Hiro
Japan
20

5. 集合

集合也使用{}表示,但{}中没有元素时,代表的是空字典

例:{}中没有元素时:

set1 = {}
print(type(set1))

例:{}中有元素时:

set2 = {'可乐', 666}
print(type(set2))

特点:

  • 列表有序,可重复;
  • 元组有序,可重复;
  • 字典无序,不可重复;
  • 集合无序,不可重复,不支持索引,可用来去重复。
集合的遍历(无序输出)
for x in set1:
    print(x)

输出结果为:

666
可乐

或:

可乐
666

你可能感兴趣的:(2019-10-22(python第二天)(下))