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 ...
随机推荐
- 【Sqlserver系列】初级思维导图
1 概述 本篇文章主要概述Sqlserver思维导图. 2 具体内容 3 参考文献 [01]https://mp.weixin.qq.com/s/USNMslpvu7pWosMZnVTPd ...
- 青否云 - 小程序待办事项 wxapp开源系统
青否云最新开源系统:小程序待办事项 wxapp-demo 青否云 小程序 demo 下载地址:https://github.com/qingful/wxapp-demo 官网 http://cloud ...
- SpringBoot ( 七 ) :springboot + mybatis 多数据源最简解决方案
说起多数据源,一般都来解决那些问题呢,主从模式或者业务比较复杂需要连接不同的分库来支持业务.我们项目是后者的模式,网上找了很多,大都是根据jpa来做多数据源解决方案,要不就是老的spring多数据源解 ...
- Spring Boot [使用 Druid 数据库连接池]
导读 最近一段时间比较忙,以至于很久没有更新Spring Boot系列文章,恰好最近用到Druid, 就将Spring Boot 使用 Druid作为数据源做一个简单的介绍. Druid介绍: Dru ...
- 使用soap实现简单webservice
在网上看到一些关于用soap实现简单webservice的一些知识,简单整理一下希望对大家有所帮助. 可以给大家看一下我的简单实现的列子,Soap,大家可以到Github上自行下载. 首先说一下web ...
- AVL树的单双旋转操作
把必须重新平衡的节点称为å.对于二叉树,å的两棵子树的高度最多相差2,这种不平衡可能有四种情况: 对å的左儿子的左子树进行插入节点(左-左) 对å的左儿子的右子树进行插入节点(左-右) 对å的右儿子的 ...
- golang 如何验证struct字段的数据格式
本文同时发表在https://github.com/zhangyachen/zhangyachen.github.io/issues/125 假设我们有如下结构体: type User struct ...
- nginx在 window下 自动退出 php-cgi
win32+nginx+php自动挂掉php-cgi.exe RunHiddenConsole E:/wnmp/php5/php-cgi.exe -b 127.0.0.1:9000 -c &qu ...
- mysql case when group by实例
mysql 中类似php switch case 的语句. select xx字段, case 字段 when 条件1 then 值1 when 条件2 then 值2 else 其他值 END 别名 ...
- ES6 let和const命令(4)
const声明的常量只在当前代码块有效.如果想设置跨模块的常量,可以采用下面的写法. //constants.js模块 export const A = 1; export const B = 3; ...