一、 笔试题
1. 列举常见的操作系统及公司线上服务器用的操作系统?
#常见的操作系统: Windows Linux macos
#公司线上服务器:windows server2003、server2003
# linnux:centos(做运维,没有图形化界面)、red hat(红帽) IBM
2. 简述位(bit)和字节(byte)的关系.
1byte = 8b
一个汉字 = 2 byte
一个英文 = 1 byte
3. Pass的作用
跳过当前继续执行,相当于占位
4. 变量的命名规范和建议
1.变量名只能以字母数字和下划线组成
2.变量名不能由数字开头
3.变量名不能是python内置关键字
建议:1.下划线命名法,单词比较长的时候用下划线分开 2.见名知意
5. =和==的区别
=是赋值 ==是判断
6. Range的作用
创建一个整数列表
返回一个可迭代对象,可以将指定范围数字返回,也可以用切片
7. 列举你了解的数据类型及他所具有的方法,每种最多写5个方法.
str:.upper() .lower() .startswith() .endswith() .strip() .replace()
list:.append() .insert() .extend() .remove() .pop() …clear() .reverse()
tuple:tuple() len() 索引 切片
dict:.keys() .values() .item() .pop() .get()
set:add() .discard() & | - len()
8. 列举你了解的转换为布尔值为False的常见值
0,“”,[],(),{}
9. 简述下列变量的区别
v1 = (1) 整数
v2 = (1,) 元组
v3 = 1 整数
10.写代码实现将字符串 v=“凤兮凤兮归故乡,遨游四海求其凰。”反转. 切片、reverse()、
v = “凤兮凤兮归故乡,遨游四海求其凰。”
#print(‘’.join(reversed(v))) #。凰其求海四游遨,乡故归兮凤兮凤
print(v[::-1]) # 反转
11.看代码写结果
School_post = [
{“principal”: “刘德华”,
“life”: {“hobby”: [“sing”, “dance”], “age”: 58, “representative_work”: [“拆弹专家”, “投名状”, “失孤”, “无间道”]}},
{“teacher”: “林俊杰”, “life”: {“hobby”: [‘sing’, ‘disco’], “age”: 38, “On_behalf_of_music”: [“修炼爱情”, “关键词”, “交换余生”]}},
]
1.请获取Shool_post列表中的principal
print(School_post[0][“principal”]) # 刘德华
2.请根据索引获取ShooL_post列表中的"sing"
print(School_post[0][“life”][“hobby”][0]) # sing
3.请根据索引获取ShooL_post列表中的"disco"
print(School_post[1][“life”][“hobby”][1]) # disco
4.请跟根据索引获取ShooL_post列表中的58.
print(School_post[0][“life”][“age”]) # 58
4.请跟根据索引获取ShooL_post列表中的On_behalf_of_music的列表
print(School_post[1][“life”][“On_behalf_of_music”]) # [‘修炼爱情’, ‘关键词’, ‘交换余生’]
5.请跟根据索引获取ShooL_post列表中的representative_work的列表
print(School_post[0][“life”][“representative_work”]) #[‘拆弹专家’, ‘投名状’, ‘失孤’, ‘无间道’]
6.请跟根据索引获取ShooL_post列表中的hobby并添加一个整数元素:99
School_post[0][“life”][“hobby”].append(99)
print(School_post)
7.请跟根据索引获取ShooL_post列表中的teacher
print(School_post[1][“teacher”]) # 林俊杰
8.请跟根据索引获取ShooL_post列表中的38
print(School_post[1][“life”][“age”]) # 38
9.请跟根据索引获取ShooL_post列表中的拆弹专家
print(School_post[0][“life”][“representative_work”][0]) # 拆弹专家
10.请跟根据索引获取ShooL_post列表中的无间道
print(School_post[0][“life”][“representative_work”][3]) # 无间道
12.看代码写结果
result = 1 > 6 and 8 < 9 ,请写出result的值。
False
result = 1 or 2 ,请写出result的值。
1
result = 0 or True ,请写出result的值
True
result = 1 and 8 or True and 4 ,请写出result的值。
8
result = “九天” or “Ture” and “九月”,请写出result的值。
“九天”
13.用代码实现实现将字符串 v = “k1|v1,k2|v2,k3|v3…” 转换成字典 {‘k1’:’v1’,’k2’:’v2’,’k3’:‘v3’…}.
方法一:
v = "k1|v1,k2|v2,k3|v3"
data = []
data1 = []
data2 = {}
for i in v.split("|",3) :
data.append(i.split(",",3))
print(data)
data1.append(data[0])
data1.append(data[1][0])
data1.append(data[1][1])
data1.append(data[2][0])
data1.append(data[2][1])
data1.append(data[3])
print(data1)
print(len(data1))
data2[data1[0][0]] = data1[1]
data2[data1[2]] = data1[3]
data2[data1[4]] = data1[5][0]
print(data2) # {'k1': 'v1', 'k2': 'v2', 'k3': 'v3'}
方法二:
v = "k1|v1,k2|v2,k3|v3"
dict = {}
data = v.split(",")
print(data)
for i in data:
data1 = i.split("|")
dict.update([(data1)])
print(dict)
方法三:
v = "k1|v1,k2|v2,k3|v3"
dict = {}
items = v.split(",")
print(items)
for i in items:
dict[i[0:2]] = i[3:5]
print(dict)
14.实现一个整数乘法计算器
content = input(“请输入内容:”) # 用户输入:5999或5* 9 * 10 * 99 或5 * 9 * 99(含空白)
data = content.split("*")
print(data)
total = 1
a = []
num = 0
for i in data:
a.append(i.strip())
print(a)
for x in a:
total *= int(x)
print(total)
```
### 15.看代码写结果:
dict = {'Name': 'Zara', 'Age': 28, 'Class': 'First'}
#### 1.请修改Name的值为Shining
dict["Name"] = "Shining"
print(dict)
#### 2.请添加一个新的键值对{"email":Shining@163.com}
dict["email"] = "Shining@163.com"
print(dict)
#### 3.请删除First
del dict["Class"]
print(dict)
### 16.请将courtship中索引值为偶数的值使用 “*” 拼接起来,并添加到一个新列表中.
#### courtship=["双","翼","俱","起","翻","高","飞",",无","感","我","思","使","余","悲"]
```python
courtship=["双","翼","俱","起","翻","高","飞",",无","感","我","思","使","余","悲"]
list = []
list1 = []
for x in courtship:
list.append(x)
for i in range(0,len(courtship)):
if i % 2 == 0:
list1.append(list[i]+"*")
"*".join(list1)
else:
continue
print(list1)
courtship=["双","翼","俱","起","翻","高","飞",",无","感","我","思","使","余","悲"]
list = []
data = "*".join(courtship[::2])
print(data)
list.append(data)
print(list)
17.请简述元组的特性.
不允许增删改,只允许查,私密性好
18.字典有序还是无序?
3.6版本以后有序
20.集合在进行数据类型转换时,具有什么特性?
如果元素有重复会自动剔除 可哈希对象都可以进行转换:List/dict/tuple/int/str
21.请分别使用while和for循环打印1000-0的正整数.
a = 1000
while True:
if 0 < a <=1000:
print(a)
a -= 1
else:
break
for i in range(1000,0,-1):
print(i)
二、综合题
1. 车牌区域划分,请根据车牌信息,分析出各省的车牌持有数量.
cars = [‘鲁A32444’, ‘鲁B12333’, ‘京B8989M’, ‘黑C49678’, ‘黑C46555’, ‘沪B25041’, ‘黑C34567’]
#根据cars得到如下结构
#info = {‘鲁’: 2, ‘黑’: 3, ‘京’: 1, ‘沪’: 1}
cars = ['鲁A32444', '鲁B12333', '京B8989M', '黑C49678', '黑C46555', '沪B25041', '黑C34567']
info = {}
num1 = num2 = num3 = num4 = 0
for i in cars:
if i.startswith("鲁"):
num1 += 1
elif i.startswith("京"):
num2 += 1
elif i.startswith("黑"):
num3 += 1
elif i.startswith("沪"):
num4 += 1
else:
break
info.update({"鲁":num1,"京":num2,"黑":num3,"沪":num4})
print(info) # {'鲁': 2, '京': 1, '黑': 3, '沪': 1}
2.写程序:保存用户名和密码。
(1).用户名和密码保存在如下数据结构中
user_list = [
{‘username’: ‘zs’, ‘password’: ‘1234’},
#{‘username’: ‘ls’, ‘passwod’: ‘asdf’}
]
(2).非法字符模板board = [‘zs’, ‘ls’, ‘ww’]。
(3).可连续输入用户名和密码。
(4).如果想终止程序,请输入Q或者q。
(5).录入用户名时,如果是board里面的非法字符串,将非法字符串替换成同等数量的* 例如 zs 替换成**。
然后添加到user_list中
(6).每次添加成功后,打印出刚添加的用户名,密码。
"""
board = ["zs","ls","ww"]
"""
user_list = []
while True:
user_input = input("如果想终止程序,请输入Q或者q,不想请输入n或者N:")
if user_input.upper() == "Q":
break
else:
user_name = input("请输入用户名:")
user_password = input("请输入密码:")
if user_name == "zs":
user_name = "**"
user_list.append({"user_name":user_name,"password":user_password})
print(user_list)
elif user_name == "ww":
user_name = "**"
user_list.append({"user_name":user_name,"password":user_password})
print(user_list)
elif user_name == "ls":
user_name = "**"
user_list.append({"user_name":user_name,"password":user_password})
print(user_list)
else:
user_list.append({"user_name":user_name,"password":user_password})
print(user_list)
"""
if user_name in board:
user_name = "*" * len(user_name)
"""
if user_name != "zs" and user_name != "ww" and user_name != "ls":
user_list.append({"user_name":user_name,"password":user_password})
print(user_list)
else:
user_name = "**"
user_list.append({"user_name":user_name,"password":user_password})
print(user_list)
3.超市买水果
(1)输入自己所有的钱。
(2)展示商品的序号,名称及其价格。
(3)输入要买商品的序号。
(4)输入要买商品的数量。
(5)购物车中显示购买的水果名称及其对应的数量和剩余钱。
(6)如果序号输入有误就提示用户重新输入。
如果钱不够了提示用户钱不够,并且退出程序
user_money = int(input("请输入你所拥有的钱:"))
total = 0
money = []
gouwuche = []
goods = [
{"序号":0,'name':'苹果','price':5},
{"序号":1,'name':'香蕉','price':5},
{"序号":2,'name':'西瓜','price':10},
{"序号":3,'name':'草莓','price':20},
]
for i in goods:
print(i)
while True:
user_input = input("进行购买请输入Y/y不购买输入N/n:")
if user_input.upper() == "N":
break
else:
index = int(input("请输入你所购买的水果序号:"))
num = int(input("请输入你所购买的水果数量:"))
if index != 0 and index != 1 and index != 2 and index != 3:
print("你输入的序号有误,请重新输入。")
continue
else:
total = total + goods[index]["price"]*num
last = "购物车:{}个{}总计{}元".format(num,goods[index]["name"],total)
print(last)
if total <= user_money:
print("支付宝到账{}元".format(total))
user_money -= total
print("你还剩余{}元".format(user_money))
total = 0
else:
print("你的钱不够")
break
```