一、选择题
1.运行下面python表达式后, x的值是()。 C
x = 3 == 3, 5
A.3
B.5
C.(True, 5)
D.(False, 5)
E.(TRUE, 5)
F.(FALSE, 5)
G.(1, 5)
2. 下面哪几个可以用于测试一个对象是否是一个可迭代对象? CDE
A.type
B.id
C.for
D.while
E.isinstance
F.type
C和D就不说了,肯定可以测试一个对象是否是一个可迭代对象,主要说E选项:
isinstance(f, Iterable)
from collections import Iterable
f = open("/etc/passwd")
print(isinstance(f, Iterable))
3. 在命名python标识符,命名不合法的是()?BC
A.UserName
B.5area
C.User@email
D.pass
E.passwd
F.for
G.str1
标示符是以字母或下划线开头,中间为字母、数字和下划线的组合
4.现要将某气象观测站每天不同时间点的气温及湿度的观察值保存, 方便以后进行调用及查询, 哪种数据类型适合存储该气象局的数据信息?E
A.str
B.list
C.tuple
D.set
E.dict
F.stack
G.queue
肯定用字典,因为字典可以存储对应的时间和气温。
5.字典这种数据结构相对于其他, 最大的特点是 _______ . B
A.有序存储
B.键值对应
C.成员唯一
D.可被迭代
E.可以切片
二、 填空题
4. 表达式sum(range(2,10,2))的值为 __________ . 20
5. python中, 查看变量在内存中地址的内置函数为 _______ 。 id()
6. python3中9/3.0的结果为 ______ , 10%3的结果为 _______ , python2中10/3的结果为 _________ . 3.0 1 3
4.python,如果一个函数没有return语句, 调用它的返回值类型为 ________ .定义函数时的参数称为______ 参数, 调用函数时的参数称为 _______ 参数. 定义函数时的参数为args, 那么 args 的数据类型为________ ; 定义函数时的参数为 *kwargs, 那么kwargs的数据类型为 _______ .None 形式 实际 元组 字典
7. 下面代码的运行结果为 ___________ 52
d1 = dict(1=1, 2=2, 3=3, 4=4, 5=5)
d2 = dict(1=10, 3=30, 4=4)
d3 = dict(1=20,5=90,6=1)
d1.update(d2)
d1.setdefalut(d3)
print sum(d1.values())
update函数:将d2中的数据更新到d1中;
setdefalut函数:如果键不存在于字典中,将会添加键并将值设为默认值,如果键存在于字典中,则不管;
最终结果为:1=10,2=2,3=30,4=4,5=5,6=1
10+2+30+4+5+1=52
三、 简答题
8. 请谈谈is和==有什么异同点?
相同点:is和==都是对对象进行比较判断作用的;
不同点:
is是对两者的id进行比较,若相同,则返回True,若不相同,则返回False;
==是对两者的值进行比较,若相同,则返回True,若不相同,则返回False;
当is返回True时,一定返回True;而当返回True时,is不一定返回True,还要看两者的id是否相同,若相同,则返回True,反之,则返回False.
9. python中是如何进行类型转换的?
直接强制进行类型转换。
想要转换的类型(原数据).
3.python中如何拷贝一个对象?deepcopy和copy有什么区别?
直接用copy这个模块进行拷贝即可;
—–deepcopy(): 深复制,即将被复制对象完全再复制一遍作为独立的新个体单独存在。所以改变原变量的值不会对新变量的值产生影响。
—–copy(): 浅复制,并不会产生一个独立的对象单独存在,它只是新建一个变量,这个变量内容指向原来变量的地址,新变量与原变量为同一个变量,原变量的值变化,新变量的值也随之变化。
11. 下面这段代码在Python2下输出结果将是什么?请解释。 那么如何改进,使得该代码和python3的执行结果
相同?
def div1(x,y):
print “%s/%s = %s” % (x, y, x/y)
def div2(x,y):
print “%s//%s = %s” % (x, y, x//y)
div1(5,2)
div1(5.,2)
div2(5,2)
div2(5.,2.)
5/2=2
5.0/2=2.5
5//2=2
5.0//2.0=2.0
原因:这是因为Python2不能智能地识别运算结果的数据类型,只能使运算结果的数据类型与输入的变量数据类型相同。
改进:
def div1(x,y):
print("%s/%s = %s" % (x,y,float(x)/y)
下面的代码不变
四. 代码题.
1.句子反转(列表和字符串考察)
题目描述:
给定一个句子(只包含字母和空格), 将句子中的单词位置反转,单词用空格分割, 单词之
间只有一个空格,前后没有空格。 比如: (1) “hello xiao mi”-> “mi xiao hello”
输入描述:
输入数据有多组,每组占一行,包含一个句子(句子长度小于1000个字符)
输出描述:
对于每个测试示例,要求输出句子中单词反转后形成的句子
示例1:
输入 hello xiao mi
输出 mi xiao helloIn [ ]:
while 2>1:
a = input(’’)
if len(a)<1000:
if a == ‘exit’:
break
c = a.split(’ ‘)
b=c[::-1]
print(’ '.join(b))
else:
print(‘Error:输入数据过长!!!’)
12. 用户登录(字典考察)
要求如下:
1.系统中初始化用户10个,用户名分别为user1~user10,初始化密码为"passwd";
2.用户登录时,判断用户是否存在;
3.如果用户存在,判断密码是否正确;
密码正确, 显示欢迎信息。‘login successful’;
密码不正确,可重试,但只有3次机会;
4.如果用户不存在,报错;
users = []
for i in range(1, 11):
users.append(‘user%d’ % i)
dict = {}.fromkeys(users, ‘passwd’)
a = input(‘请输入用户名:’)
while a in users:
for i in range(3):
p = input(‘请输入密码:’)
if p == ‘passwd’:
print(‘login successful’)
exit()
else:
print(‘密码错误’)
print(‘您还有%d次机会’ % (2 - i))
else:
exit()
else:
print(‘Error:%s用户不存在!!!’ %a)
3.喜欢的字符串(字符串和函数考察)
小易喜欢的单词具有以下特性: 1.单词每个字母都是大写字母 2.单词没有连续相等的字母 列可能不连续。 例
如: 小易不喜欢"ABBA",因为这里有两个连续的’B’ 小易喜欢"A",“ABA"和"ABCBA"这些单词 给你一个单词,你
要回答小易是否会喜欢这个单词。
输入描述: 输入为一个字符串,都由大写字母组成,长度小于100
输出描述: 如果小易喜欢输出"Likes”,不喜欢输出"Dislikes"
示例1 :
输入
AAA
输出
Dislikes
def up(s):
return s.isupper()
def line(s):
for i in range(0,len(s)-1):
if s[i] ==s[i+1]:
return False
return True
s=input(‘请输入一个字符串:’)
if len(s)<100:
if up(s) and line(s):
print(‘Likes’)
else:
print(‘Dislikes’)
else:
print(‘Error:输入数据过长!!!’)
以Pyechat监控系统CPU,然后以网页图形的方式展现:
from pyecharts.charts import Line
from datetime import datetime
import pyecharts.options as opts
import psutil
for i in range(20):
now_time = datetime.now()
now_t = str(now_time).split(’.’)[0]
a=str(now_t).split(’ ‘)[1]
b=psutil.cpu_percent(interval=1, percpu=False)
print(a,b)
c=str(a)+’ ‘+str(b)+’\n’
if i==0:
with open(‘cpu.txt’,‘w’) as f:
f.write©
else:
with open(‘cpu.txt’,‘a’) as f:
f.write©
x = []
y = []
with open(‘cpu.txt’) as f: # 以读的方式打开文件
for line in f: # 依次遍历文件的每一行内容
time, per = line.split() # 返回时间和对应时间的cpu占有率
x.append(time)
y.append(per)
#添加x和y对应的点;
line = (
Line()
.add_xaxis(x)
.add_yaxis("", y)
.set_global_opts(title_opts=opts.TitleOpts(title="Cpu占有率散点图"))