数据分析 NO.10 《Python从入门到实践》2-7章(含练习题)

《Python从入门到实践》2-7章
第二章: 变量
1.变量名只能包含字母、数字和下划线。变量名可以字母或下划线打头,但不能以数字打头
变量名不能包含空格,但可使用下划线来分隔其中的单词。
不要将Python关键字和函数名用作变量名
变量名应既简短又具有描述性。
慎用小写字母l和大写字母O
注意 就目前而言,应使用小写的Python变量名。

2.a.title()
title()以首字母大写的方式显示每个单词,即将每个单词的首字母都改为大写
.upper()
.lower()
字符串中添加制表符,可使用字符组合\t
字符串中添加换行符,可使用字符组合\n

3.删除空格:
lstrip()
rstrip()
strip()
要永久删除这个字符串中的空白,必须将删除操作的结果存回到变量中

favorite_language = 'python '
favorite_language = favorite_language.rstrip()
favorite_language

4.Python使用两个乘号表示乘方运算 **

在Python中,第一个列表元素的索引为0,而不是1。

第三章: 列表基础
方法append()将元素添加到了列表末尾
方法insert()可在列表的任何位置添加新元素。为此,你需要指定新元素的索引和值。这种操作将列表中既有的每个元素都右移一个位置: insert(0,“hello”)

5.删除元素:
del语句删除元素 del a[0]
方法pop()可删除列表末尾的元素
使用pop()来删除列表中任何位置的元素,只需在括号中指定要删除的元素的索引即可

如果你要从列表中删除一个元素,且不再以任何方式使用它,就使用del语句;如果你要在删除元素后还能继续使用它,就使用方法pop()。 b=a.pop(0)

如果你只知道要删除的元素的值,可使用方法remove()。(方法remove()只删除第一个指定的值。如果要删除的值可能在列表中出现多次,就需要使用循环来判断是否删除了所有这样的值。)

6.列表排序:
方法sort()(永久性地修改了列表元素的排列顺序。现在,汽车是按字母顺序排列的,再也无法恢复到原来的排列顺序

cars = ['bmw', 'audi', 'toyota', 'subaru'] 
 cars.sort()
print(cars)

与字母顺序相反的顺序排列列表元素,为此,只需向sort()方法传递参数reverse=True。即sort(reverse=True)
要保留列表元素原来的排列顺序,同时以特定的顺序呈现它们,可使用函数sorted()。

print("\nHere is the sorted list:") 
print(sorted(cars))

反转:要反转列表元素的排列顺序,可使用方法reverse()
reverse()不是指按与字母顺序相反的顺序排列列表元素,而只是反转列表元素的排列顺序

第四章: 列表操作
用for遍历 注意缩进,python中缩进是语法!
函数range()让你能够轻松地生成一系列的数字 (前闭后开这里的前闭后开指最后一个取不到,要取的话后面的数字要多算1位)
使用函数range()时,还可指定步长。

range(2,11,2)

对于列表同样拥有:
min(),max(),sum()等函数

列表生成式:
[x for x in range(1,11)]

切片:前闭后开
如果没有指定起始索引,Python从列表开头开始提取,要让切片终止于列表末尾,也可使用类似的语法。
复制列表:[:]

Python将不能修改的值称为不可变的,而不可变的列表被称为元组

第五章 if语句
要判断特定的值是否已包含在列表中,可使用关键字in。
只想执行一个代码块,就使用if-elif-else结构;如果要运行多个代码块,就使用一系列独立的if语句。

第六章 字典
字典用放在花括号{}中的一系列键—值对表示
del语句将相应的键—值对彻底删除。使用del语句时,必须指定字典名和要删除的键。

遍历字典:

 for k,v in a.items():

遍历字典中所有的键: 方法keys()并非只能用于遍历;实际上,它返回一个列表,其中包含字典中的所有键

for k in a.keys():

字典包含的值,可使用方法values(),它返回一个值列表

通过对包含重复元素的列表调用set(),可让Python找出列表中独一无二的元素

第七章 用户输入 while 循环

用户输入: input()

求模运算符(%):它将两个数相除并返回余数

要立即退出while循环,不再运行循环中余下的代码,也不管条件测试的结果如何,可使用break语句。
要返回到循环开头,并根据条件测试结果决定是否继续执行循环,可使用continue语句,它不像break语句那样不再执行余下的代码并退出整个循环。

删除包含特定值的所有列表元素:

while 'cat' in pets: 
 pets.remove('cat')

Python 练习题:

1、列出python中可变数据类型和不可变数据类型,并简述原理
答:
可变数据类型:列表,字典,集合
不可变数据类型:元祖

老师答案:
不可变数据类型:数值型、字符串型string和元组tuple
不允许变量的值发生变化,如果改变了变量的值,相当于是新建了一个对象,而对于相同的值的对象,在内存中则只有一个对象(一个地址)
可变数据类型:列表list和字典dict;
允许变量的值发生变化,即如果对变量进行append、+=等这种操作后,只是改变了变量的值,而不会新建一个对象,变量引用的对象的地址也不会变化,不过对于相同的值的不同对象,在内存中则会存在不同的对象,即每个对象都有自己的地址,相当于内存中对于同值的对象保存了多份,这里不存在引用计数,是实实在在的对象。

2、用lambda函数实现两个数相乘

from functools import reduce
reduce(lambda x,y:x*y,[1,2])

老师答案:

sum = lambda x,y:x*y
print(sum(4,5))

3、字典根据键从小到大排序dict={“name”:“zs”,“age”:18,“city”:“深圳”,“tel”:“1362626627”}

from collections import OrderedDict
dict={"name":"zs","age":18,"city":"深圳","tel":"1362626627"}
OrderedDict(sorted(dict.items(),key=lambda t:t[0]))

老师答案:

dict=sorted(dic.iteritems(),key=lambda d:d[0])

4、利用collections库的Counter方法统计字符串每个单词出现的次数"kjalfj;ldsjafl;hdsllfdhg;lahfbl;hl;ahlf;h"

from collections import Counter
s="kjalfj;ldsjafl;hdsllfdhg;lahfbl;hl;ahlf;h"
Counter(s)

5、字符串a = “not 404 found 张三 99 深圳”,每个词中间是空格,用正则过滤掉英文和数字,最终输出"张三 深圳"

在这里插入图片描述
.join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。

str = "-";
seq = ("a", "b", "c"); 
print str.join( seq )

a-b-c#输出结果

6、filter方法求出列表所有奇数并构造新列表,a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

a =  [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
b=list(filter(lambda x:x%2==1,a))

老师答案:

a=[1,2,3,4]
def add(a):
    return a%2==1
new_1=filter(add,a)
for i in new_1

7、列表推导式求列表所有奇数并构造新列表,a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

c=[x for x in a if x%2==1 ]

8、写代码,有如下变量,请按照要求实现每个功能
name = " aleX "
a.移除name变量对应的值两边的空格,并输入移除有的内容
b.判断name变量对应的值是否以 “al"开头,并输出结果
c.判断name变量对应的值是否以 “X"结尾,并输出结果
d.将name变量对应的值中的 " l” 替换为 " p”,并输出结果
e.将name变量对应的值根据 " l" 分割,并输出结果。
f.请问,上一题 e分割之后得到值是什么类型?
g.将name变量对应的值变大写,并输出结果
h.将name变量对应的值变小写,并输出结果
i.请输出name变量对应的值的第2个字符?
j.请输出name变量对应的值的前3个字符?
k.请输出name变量对应的值的后2个字符?
l.请输出name变量对应的值中 “e” 所在索引位置?

答:
a.name=name.strip()
b.name.startswith("al")
c.name.startswith("X",-1) 答案: name.endwith("X")
d.name.replace("l","p")
老师答案:
在这里插入图片描述

e.name.split("l")
f. 字符串!
g.name.upper()
h.name.lower()
i.name[2]
j.name[:3]
k.name[-2:]
i.name.find("e") 老师答案: for i in enumerate(name): if v=="e": print("e的索引是:%s,%i)

9.计算字符串中,关键字出现的次数。

s = "sdcasgqwaa"
s.count(a)

作业总结:
enumerate():该函数在字面上是枚举、列举的意思,用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中,可同时得到数据对象的值及对应的索引值。
enumerate(sequence, [start=0])
sequence – 一个序列、迭代器或其他支持迭代对象。start – 下标起始位置。

seasons = ['Spring', 'Summer', 'Fall', 'Winter']
list(enumerate(seasons))
[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]

>>>seq = ['one', 'two', 'three']
>>> for i, element in enumerate(seq):
...     print i, element
... 
0 one
1 two
2 three
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值