Python全栈考试(一)
1、执行 Python 脚本的两种方式
1) 使用命令行执行Python脚本: python C:\tesst.py
2) 使用各种IDE软件.pycharm wing
2、简述位、字节的关系
位 (bit) 数据存储是以“字节”位单位的,数据传输大多是以“位”为单位的,以为就代表一个0或1,每8位组成一个字节,是最小一级的信息单位。
3、简述 ascii、unicode、utf-‐8、gbk 的关系
Ascii码有256位为最原始的版本
Unicode位万国码
Utf-8为Unicode压缩版 以尽量少字节表达
Gbk为汉字编码
4、请写出 “李杰” 分别用 utf-‐8 和 gbk 编码所占的位数
Utf-8需要用3个字节表示一个汉字 李杰需要使用48位
Gbk需要使用两个字节表示一个汉字 李杰需要用32位
5、Pyhton 单行注释和多行注释分别用什么?
单行注释:# hello
多行注释:'''
hello world
'''
6、声明变量注意事项有那些?
1) 变量名由字符、数字、下划线组成
2) 变量名不能以数字开头
3) 变量名不能是关键字
4) 常量定义字符全为大写字符
8、 如何查看变量在内存中的地址?
使用id函数查看:Id(变量名)
9、 执行 Python 程序时,自动生成的 .pyc 文件的作用是什么?
运行Python程序,PyCodeObject编译保存文件,.pyc文件是PyCodeObject永久性保存文件
10、 写代码
a.实现用户输入用户名和密码,当用户名为 seven 且 密码为 123 时,显示登陆成功,否则登陆失败!
name = input('please input name>>:').strip()
password = input('please input password>>:').strip()
if name.__eq__('seven') and password.__eq__(''):
print('login ok')
break
else:
print('login failed')
b.实现用户输入用户名和密码,当用户名为 seven 且 密码为 123 时,显示登陆成功,否则登陆失败,失败时允许重复输入三次
counter = 3
while counter > 0:
counter-=1
name = input('please input name>>:').strip()
password = input('please input password>>:').strip()
if name.__eq__('seven') and password.__eq__(''):
print('login ok')
break
else:
print('login failed')
c.实现用户输入用户名和密码,当用户名为 seven 或 alex 且 密码为 123 时,显示登陆成功,否则登陆失败,失败时允许重复输入三次
counter = 3 while counter > 0: counter-=1 name = input('please input name>>:').strip() pwd = input('please input password>>:').strip() if (name.__eq__('seven') or name.__eq__('alex'))and pwd.__eq__(''): print('login ok') else: print('login failed')
11、写代码
- 使用 while 循环实现输出 2 - 3 + 4 - 5 + 6 -....... + 100 的和
result = 0 while counter > 1: if counter % 2 == 0: result += counter else: result -= counter counter -= 1 print(result)
- 使用 for 循环和 range 实现输出 1 - 2 + 3 - 4 + 5 - 6- ... + 99 的和
result = 0 for x in range(1,100): if x%2==0: result-=x else: result+=x print(result)
- 使用 while 循环实现输出 1,2,3,4,5, 7,8,9, 11,12
counter = 0 while counter <12: counter+=1 if counter==6 or counter ==10: print(' ',end='') else: print(counter,end=',')
- 使用 while 循环实现输出 1-‐100 内的所有奇数
counter = 1 while counter < 100: print(counter) counter+=2
- 使用 while 循环实现输出 1-‐100 内的所有偶数
counter = 2 while counter < 100: print(counter) counter+=2
12、 分别书写数字 5,10,32,7 的二进制表示
5 : 0b0000 0101
10 : 0b0000 1010
32 : 0b0010 0000
7 : 0b0000 0111
13、 简述对象和 类的关系(可用比喻的手法)
类是对象的集合,如同蛋类中包含鸡蛋,鸭蛋,鹅蛋,egon
蛋{鸡蛋,鸭蛋,鹅蛋,egon};
14、 现有如下两个变量,请简述 n1 和 n2 是什么关系?
n1 = 123
n2 = 123
n1和n2两个变量的 在内存中指向的是一个地址,他们的id是一样的
15、 现有如下两个变量,请简述 n1 和 n2 是什么关系?
n1 = 123456
n2 = 123456
n1和n2数值相等,但是他们的内存id不同
16、 现有如下两个变量,请简述 n1 和 n2 是什么关系?
n1 = 123456
n2 = n1
n1 和 n2 数值相等,内存地址相等,此时变更n1不会影响n2,n1变更数值,其内存地址变更,而n2的内存地址不变
17、 如有一下变量 n1 = 5,请使用 int 的提供的方法,得到该变量 少可以用多少个二进制位表示?
int.bit_length(n1)
18、 布尔值分别有什么?
True和False
19、 阅读代码,请写出执行结果
a = "alex"
b = a.capitalize()
print(a)
print(b)
请写出输出结果:alex
Alex
20、 写代码,有如下变量,请按照要求实现每个功能
name = " aleX"
a 移除 name 变量对应的值两边的空格,并输入移除有的内容
name.strip()
b 判断 name 变量对应的值是否以 "al" 开头,并输出结果
name.startwith(“al”)
c 判断 name 变量对应的值是否以 "X" 结尾,并输出结果
name.endwith(“X”)
d 将 name 变量对应的值中的 “l” 替换为 “p”,并输出结果
name.replace(‘l’, ’p’)
e 将 name 变量对应的值根据 “l” 分割,并输出结果。
name.strp(‘l’)
f 请问,上一题 e 分割之后得到值是什么类型?
得到的是列表类型的
g 将 name 变量对应的值变大写,并输出结果
print(name.strip().supper()) #ALEX
h 将 name 变量对应的值变小写,并输出结果
print(name.strip().lower()) #alex
i 请输出 name 变量对应的值的第 2 个字符?
print(name.strip()[1]) #l
j 请输出 name 变量对应的值的前 3 个字符?
print(name.strip()[:3]) #ale
k 请输出 name 变量对应的值的后 2 个字符?
print(name[-2:]) #eX
l 请输出 name 变量对应的值中 “e” 所在索引位置?
print(name.index(‘e’)) #6
21、字符串是否可迭代?如可以请使用 for 循环每一个元素?
字符串可以迭代
str = ‘hello world’
for item in str:
print(item)
22、请用代码实现:利用下划线将列表的每一个元素拼接成字符串,li = ['alex', 'eric', 'rain']
str = li[0]+’_’+ li[1]+’_+ li[2]
22、 写代码,有如下列表,按照要求实现每一个功能
li = ['alex', 'eric', 'rain']
- 计算列表长度并输出
print(len(li))
2.列表中追加元素 “seven”,并输出添加后的列表
print(li.append(‘seven’))
3.请在列表的第 1 个位置插入元素 “Tony”,并输出添加后的列表
print(li.insert(0,’Tony’))
4.请修改列表第 2 个位置的元素为 “Kelly”,并输出修改后的列表
li[1]=’Kelly’
print(li)
5.请删除列表中的元素 “eric”,并输出修改后的列表
li.remoer(‘eric’)
print(li)
6.请删除列表中的第 2 个元素,并输出删除的元素的值和删除元素后的列表
print(li.pop(2))
print(li)
7.请删除列表中的第 3 个元素,并输出删除元素后的列表
print(li.pop(3))
8.请删除列表中的第 2 至 4 个元素,并输出删除元素后的列表
del li[1:3]
print(li)
9.请将列表所有的元素反转,并输出反转后的列表
print(li.reverse())
10.请使用 for、len、range 输出列表的索引
for index in range(len(li)):
print(index)
11.请使用 enumrate 输出列表元素和序号(序号从 100 开始)
for x,y in enumerate(li,100):
print(x,y)
12.请使用 for 循环输出列表的所有元素
for item in li:
print(item)
23、 写代码,有如下列表,请按照功能要求实现每一个功能
li = ["hello", 'seven', ["mon", ["h", "kelly"], 'all'], 123, 446]
- 请输出 “Kelly”
print(li[2][1][1])
请使用索引找到 'all' 元素并将其修改为 “ALL”
print(li[2][2].upper())
24、 写代码,有如下元组,按照要求实现每一个功能
tu = ('alex', 'eric', 'rain')
- 计算元组长度并输出
print(len(tu))
- 获取元组的第 2 个元素,并输出
print(tu[1])
- 获取元组的第 1-‐2 个元素,并输出
print(tu[:2])
- 请使用 for 输出元组的元素
for item in tu:
print(item)
- 请使用 for、len、range 输出元组的索引
for index in range(len(tu)):
print(index)
- 请使用 enumrate 输出元祖元素和序号(序号从 10 开始)
for index value in enumerate(tu):
print(index,value)
25、 有如下变量,请实现要求的功能
tu = ("alex", [11, 22, {"k1": 'v1', "k2": ["age", "name"], "k3": (11,22,33)}, 44])
- 讲述元祖的特性
元组是不可变类型,主要体现在元组的每个元素id唯一
- 请问 tu 变量中的第一个元素 “alex” 是否可被修改?
不可以被修改
- 请问 tu 变量中的"k2"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素 “Seven”
K2对应的是列表类型,可以被修改,
tu[1][2].get(‘k2’).append(“Seven”)
- 请问 tu 变量中的"k3"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素 “Seven”
K3对应的是元组类型 不可被修改
26、 字典
dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}
- 请循环输出所有的 key
for key in dic.keys:
print(key)
2.请循环输出所有的 value
for value in dic.values:
print(value)
3.请循环输出所有的 key 和 value
for key,value in dic.items:
print(key:‘%s value:%s’ % (key,value))
4.请在字典中添加一个键值对,"k4": "v4",输出添加后的字典
dic[‘k4’]) = ‘k4’) print((dic)
5.请在修改字典中 “k1” 对应的值为 “alex”,输出修改后的字典
dic[‘k1’] = ‘alec’ print(dic)
6.请在 k3 对应的值中追加一个元素 44,输出修改后的字典
dic[‘k3’].append(44) print(dic)
7.请在 k3 对应的值的第 1 个位置插入个元素 18,输出修改后的字典
dic[‘k3’].insert(0,18) print(dic)
27、转换
- 将字符串 s = "alex" 转换成列表
l = []
for char in s:
l.append(char)
print(l)
2.将字符串 s = "alex" 转换成元祖
l = []
for char in s:
l.append(char)
print(tuple(l)l)
3.将列表 li = ["alex", "seven"] 转换成元组
tuple(li)
4.将元祖 tu = ('Alex', "seven") 转换成列表
list(tu)
5.将列表 li = ["alex", "seven"] 转换成字典且字典的 key 按照10 开始向后递增
dic = dict(enumerate(li,10))
print(dic)
28、 转码
n = "老男孩"
a. 将字符串转换成 utf-‐8 编码的字节,并输出,然后将该字节再转换成 utf-‐8 编码字符串,再输出
sstr=n.encode("UTF-8")
print(sstr)
sstr.decode("UTF-8")
print(sstr)
b. 将字符串转换成 gbk 编码的字节,并输出,然后将该字节再转换成 gbk 编码字符串,再输出
sstr=n.encode("GBK")
print(sstr)
sstr.decode("GBK")
print(sstr)
28、 求 1-‐100 内的所有数的和
result = 0
for i in range(100):
result +=i
print(result)
29、元素分类
有如下值集合 [11,22,33,44,55,66,77,88,99,90],将所有大于
66 的值保存至字典的第一个 key 中,将小于 66 的值保存至第二个 key 的值中。
即:
{'k1': 大于 66 的所有值, 'k2': 小于 66 的所有值}
l = [11,22,33,44,55,66,77,88,99,90]
dic = {’k1’:[],’’k2:[]} for item in l: if item > 66 dic[‘k1’].append(item) else: dic[‘k2’].append(item) print(dic)
30、 购物车
功能要求:
要求用户输入总资产,例如:2000
显示商品列表,让用户根据序号选择商品,加入购物车
购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
goods = [
{"name": "电脑", "price": 1999},
{"name": "鼠标", "price": 10},
{"name": "游艇", "price": 20},
{"name": "美女", "price": 998}, ]
assets = 2000 cart_l = [] while True: cmd = input('1.Shopping\n2.Settlement\nPlease input
index>>:') if not cmd.isdigit():continue if int(cmd) <= 0 or int(cmd) >2: print('commend not exist') continue if cmd == '': for index, goods_d in enumerate(goods_l, 1): name, price = goods_d.items() print('%d.goods name:%s goods price:%s' % (index, name[1], price[1])) cmd = input('please select your goods by index>>:') if not cmd.isdigit():continue index_s = int(cmd) if index_s <= 0 or index_s > len(goods_l):continue while True: num = input('please select number of goods>>:') if num.isdigit(): break cart_l.append((goods_l[index_s-1], int(num))) print(cart_l) else: totals = 0 for goods_msg in cart_l: totals += goods_msg[0]['price'] * (goods_msg[1]) if totals <= assets: print(type(totals)) print('you settlement ok!!,and balance is %d $' % (assets - totals)) else: print('balance is not enough!!!1') break
Python全栈考试(一)的更多相关文章
- Python全栈考试-部分试题(精选)
Python全栈考试(一) Python全栈考试(一) 1.执行 Python 脚本的两种方式 答:1.>>python ../pyhton.py 2. >>python.py ...
- python全栈考试
1.执行 Python 脚本的两种方式 shell直接调用python脚本 python run.py 调用解释器来调用脚本 2.2.简述位.字节的关系 每8个位bit,组成一个字节byte. 一个 ...
- python 全栈开发,Day30(第一次面向对象考试)
月考题: python 全栈11期月考题 一 基础知识:(70分) 1.文件操作有哪些模式?请简述各模式的作用(2分) 2.详细说明tuple.list.dict的用法,以及它们的特点(3分) 3.解 ...
- 想成为Python全栈开发工程师必须掌握的技能
什么是Python全栈工程师? 即从前端页面的实现,到后台代码的编写,再到数据库的管理,一人可以搞定一个公司网站的所有事情,真正实现全栈开发. 全栈只是个概念 也分很多种类 真正的全栈工程师涵盖了we ...
- Python全栈【Socket网络编程】
Python全栈[socket网络编程] 本章内容: Socket 基于TCP的套接字 基于UDP的套接字 TCP粘包 SocketServer 模块(ThreadingTCPServer源码剖析) ...
- Python全栈【异常处理】
Python全栈[异常处理] 本节内容: 1.异常处理 2.什么时候用异常处理 异常处理 1.异常处理: 异常就是程序运行时发生错误的信号,异常处理是在编程过程中为了增加友好性,在程序出现bug时一般 ...
- Python全栈开发【面向对象进阶】
Python全栈开发[面向对象进阶] 本节内容: isinstance(obj,cls)和issubclass(sub,super) 反射 __setattr__,__delattr__,__geta ...
- Python全栈开发【面向对象】
Python全栈开发[面向对象] 本节内容: 三大编程范式 面向对象设计与面向对象编程 类和对象 静态属性.类方法.静态方法 类组合 继承 多态 封装 三大编程范式 三大编程范式: 1.面向过程编程 ...
- Python全栈开发【模块】
Python全栈开发[模块] 本节内容: 模块介绍 time random os sys json & picle shelve XML hashlib ConfigParser loggin ...
随机推荐
- springCloud项目练习
1.https://gitee.com/xfdm/FCat angular4.springcloud开源实战项目:FCat项目(springcloud.mybatis.redis.angular4)是 ...
- [.Net跨平台]部署DTCMS到Jexus遇到的问题及解决思路--验证码
上一篇博客我们已经基本完成了部署工作,目前发现了验证码出现500错误,分析其代码,我们可以看到验证码使用的是System.Drawing命名空间下的类库, GDI+ 位图,这个在肯定是平台相关的,所以 ...
- Grafana4.2安装
一.文件准备 1.1 文件名称 grafana-4.2.0-1.x86_64.rpm 1.2 下载地址 https://grafana.com/grafana/download 二.工具准备 2.1 ...
- 《HelloGitHub》第 21 期
公告 元旦快乐! <HelloGitHub>第 21 期 兴趣是最好的老师,HelloGitHub 就是帮你找到兴趣! 简介 分享 GitHub 上有趣.入门级的开源项目. 这是一个面向编 ...
- 将php项目打包docker镜像
简介:有时候我们需要将php的项目打包成docker镜像,这里介绍下 思路:我们php和apache结合一个镜像实现php项目的访问,mysql是一个单独的镜像 步骤: 1.首先我们在本地测试好自己的 ...
- Android 开发,你遇上 Emoji 头疼吗?
在 Android 中,如果需要使用的到 Emoji 表情,你会发现在某些设备上,有一些 Emoji 表情会被以豆腐块 "☐" 的形式显示,这是因为当前设备并不支持这个 Emoji ...
- 人工智能技术实践篇:espeak开发环境调试
一.前言 1.espeak版本: espeak-1.48.04-source 2.开发环境:VC+2015 二.正文 2.1 错误提示 LNK1104: cannot open file 'LIBC. ...
- 学习Object.assign()
Object.assign()用于将所有可枚举的值从一个或多个源对象复制到目标对象.它将返回目标对象. 语法 Object.assign(target, ...source); var obj = { ...
- vue基础入门
Hello World <body> <!-- 在angularJS中用ng-model --> <!-- {{mseeage?message:11}}支持三元表达式 ...
- 高度-宽度关系,同一div、不同div高度与宽度关系控制函数
//对象1的高度等于对象2的高度n倍,调用方法:Ht1DivideHt2('#div2','#div1',3)//div2的高度是div1高度的3倍function Ht1DivideHt2(obj1 ...