说明:以练习题的方式,学习python基础知识点,主要是数据分析方向常用的numpy、pandas、matplotlib等库对应的练习题。仅供参考,题目来源于网络,如有侵权请联系我删除。
(1)下面两段代码输出的结果相同么?请解释原因。
① x=4,y=5,print(x+y) ② x='4',y='5', print(x+y)
答:一是整数间加法运算,结果为 9 ;二是字符串之间的拼接操作,结果为 45。
(2)‘10/3',‘10//3’和'10%3'结果相同么?请说明原因
答:结果分别为:3.333 ,3 ,1。其中,/是除法运算,//所得结果向下取整,也叫地板除,%是取余运算。
(3)string1='I'm a student.' 。print(string1)结果会报错么?如何修改string1使其得到正确的输出?
答:会报错SyntaxError: invalid syntax,因为系统会认为最近两个单引号是匹配的。如有特殊字符时候,可使用转义字符\ 。修改为 string1='I\'m a student.' print(string1)
(4) a = 3,str(a*3) + str(a)*3的输出是什么?
答:输出结果为9333。str(a*3)得到的是字符串类型的 9,str(a)*3表示字符串 3 重复3次,加号是字符串拼接。
(5)my_string = 'this is my string', 如何查看这个字符串长度?
答:查看字符串长度用len(str)函数。即len(my_string)
(6)a,b = 4,5,a大于b 或 b大于等于5。请写出这里逻辑运算的代码,并查看输出会是什么。
答:a,b = 4,5 a>b or b>=5 ,输出结果为 True
(7)'='和'=='分别表示什么含义?print(2==5)输出什么结果?属于什么类型数据?
答:'='和'=='分别表示赋值和等于。print(2==5)输出False,属于布尔类型数据。
(8)计算:100%(2+2)**3//5
答:结果为7,计算步骤:100%4^3//5;100%64//5;36//5。其中**代表指数运算,%代表取余运算,//代表地板除(向下取整),同时注意计算次序。
(9)a,b = 4,5,a *= b,a=?
答:a=20,即a=4 ,b=5 ,a=a*b=4*5=20。
(10)int(3.14159)==float(3)会输出什么结果?为什么?type(int(3.14159))==type(float(3))的结果又是什么?
答:int(3.14159)==float(3)输出结果为True,type(int(3.14159))==type(float(3))输出结果为False。因为int(3.14159)即3,float(3)即3.0,二者数值大小相同,但是类型不同,一个是整型一个是浮点型。
(1)L=[1,2,3,4,1,4,5,6],请完成:①删除列表中的重复元素并输出一个集合;②将7添加到集合中;③将集合转化为列表,删除元素3.
答:首先区别列表与集合:列表与集合的区别在于集合中元素不重复。使用大括号{ } 或者set() 函数创建集合,注意:创建一个空集合必须用set() 而不是{ }。
L=[1,2,3,4,1,4,5,6]
s=set(L)
print(s)
其次,集合添加元素使用add()函数。
s.add(7)
print(s)
最后,列表用list()函数,删除元素用pop()函数。
L2 = list(s)
L2.pop(2)
(2)dog = ["tom", "jack", "Collie", "Marry"], kitty = "Marry", 如何判断 kitty 是否是 dog 中的一员?
答:使用in。in的常用用法:在 for 循环中,获取列表或者元组的每一项;判断左边的元素是否包含于列表(如本题中);用来判断字符串是否包含某一串,可以用来筛选文件使用。返回结果为True 或 False。
dog = ["tom", "jack", "Collie", "Marry"]
kitty = "Marry"
kitty in dog
(3)dog = ["tom", "jack", "Collie", "Marry"],将dog逆序。
答:列表中元素逆序输出方法dong[ : : -1];或者使用dog.reverse()函数 或者 reversed(dog)方法,不过 reversed(dog)返回结果为倒序可遍历对象,需遍历出。
(1)dog = ["tom", "jack", "Collie", "Marry"]
dog[ : : -1]
(2)dog = ["tom", "jack", "Collie", "Marry"]
dog.reverse()
(3)dog = ["tom", "jack", "Collie", "Marry"]
for i in reversed(dog):
print(i)
(4)L=["former", "latter", "starboard"],请完成:为L在末端添加一个元素“port”。
答:列表末端添加元素使用append()方法。
除此之外, append() 追加单个元素到List的尾部,只接受一个参数,参数可以是任何数据类型,被追加的元素在List中保持着原结构类型,比如元素如果是一个list,那么这个list将作为一个整体进行追加;extend() 将一个列表中每个元素分别添加到另一个列表中,只接受一个参数;extend()相当于是将list B 连接到list A上; insert() 将一个元素插入到列表中,第一个参数是索引点,即插入的位置,第二个参数是插入的元素;+ 加号,将两个list相加,会返回到一个新的list对象,注意与前三种的区别。前面三种方法(append, extend, insert)可对列表增加元素的操作,他们没有返回值,是直接修改了原数据对象(不推荐使用。)
L1=["former", "latter", "starboard"]
L2 = ['nn','m',['nm']]
L1.append(L2)
结果为:['former', 'latter', 'starboard', ['nn', 'm', ['nm']]]
L1.extend(L2)
结果为:['former', 'latter', 'starboard', 'nn', 'm', ['nm']]
L1.insert(0,L2)
结果为:[['nn', 'm', ['nm']], 'former', 'latter', 'starboard']
L1+L2
结果为:['former', 'latter', 'starboard', 'nn', 'm', ['nm']]
(5)L=[1,2,3,1,5,11,3,6,4,2,5,8,4,2],计算L的最值,和加和。
答:最值L.max(),L.min(),加和L.sum()
(6)cube:length:40,width:40,height:40, 请创建一个字典,包括cube的所有信息,并向字典中添加条目“color”和对应值"red",删除属性height,修改属性width为20.
答:创建字典的几种方式如。除此之外还可以通过推导式创建等。
#直接赋值创建,注意是大括号
dic = {'length':40,'width':40,'height':40}
#通过关键字dict和关键字参数创建
dic = dict(length=40, width=40, height=40)
#通过二元组列表创建
dic = [('length',40),('width',40),('height',40)]
#dict和zip结合创建
dic = dict(zip(['length','width','height'], [40, 40, 40]))
字典中增加元素:dict['color']='red' ;
字典中删除元素:dict.pop('height') ;
del dict['height'] # 删除键是'height'的条目
dict.clear() # 清空词典所有条目
del dict # 删除词典
字典中修改元素:dict['width']=20
(7)set_a = {1, 5, 10} set_b = {1, 10, 12} 找出set_a和set_b中共有的元素(交集)。
答:print(set_a&set_b)。交集 &或set_a.intersection(set_b);并集| 或set_a.union(set_b);差集- 或set_a.difference(set_b)。除此之外,还有对称差集和子集,超子集等。
(8)从1到10中选出所有的奇数。
答:可以使用切片方式实现。
import numpy as np
a = np.arange(1,11)
a[: : 2]
(9)将字典变为两个元素一一对应的列表,一个只含有关键字,另一个只含有值。 如:{'a': 1, 'b': 2}变为['a', 'b'], [1, 2]
答:使用keys()和values()函数实现。
dt = {'a': 1, 'b': 2}
a = dt.keys()
b = dt.values()
(1)L=[1,2,'','my',3,'name','is',4,'katty'],利用循环语句和判断条件,分别输出列表中的字符串和数字。
答:循环语句for循环和whlie循环;判断语句if...else。
L=[1,2,'','my',3,'name','is',4,'katty']
for i in L:
if type(i)==int:
print(i)
else:
continue
for i in L:
if type(i)==str:
print(i)
else:
continue
(2)利用循环语句输出1到50中5的倍数,将其存放到一个列表中。
a=[]
for i in range(1,51):
if i%5==0:
a.append(i)
print(a)
(3)定义一个判断字符串的长度是否大于10的函数。
答:定义函数
return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。
def fun(s):
if len(s)>10:
print('字符串长度大于10')
else:
print('字符穿串长度不大于10')
s='hello world,i love you'
fun(s)
(4)定义一个求解阶乘的函数。
import numpy as np
import pandas as pd
from functools import reduce
def factorial(n):
L = np.arange(1,n+1)
return reduce(lambda x,y:x*y,L)
factorial(5)
答:reduce()函数是内置函数,使用的方式:reduce(function, iterable[, initializer]),其中function表示函数,有两个参数;iterable 表示可迭代对象;initializer表示可选,初始参数。
(5)利用列表生成式,生成1-5的阶乘。
[factorial(i) for i in range(1,6)]
答:使用到了(4)中的函数。
(6)利用函数和列表生成式,标记一个列表,奇数标记为1,偶数标记为2,并且统计一下奇数和偶数的数量。 例如:[1,4,2,4,2,9,5],得到[1,2,2,2,2,1,1]
函数:
def func(i):
if i%2==0:
return 2
else:
return 1
l = [1,4,2,4,9,5]
列表生成式:
[func(i) for i in l]
注:第一部分结束。如果想自己练习,可以到我的百度网盘下载原题,使用Jupyter notebook自己写python代码实现。加油哦!
百度网盘题目地址:https://pan.baidu.com/s/1A7JFRdaBYLlnFVn6xT_SOg