python基础部分测试题(作业)

  1. 简述变量命名规则
    由数字、字母、下划线组成,不能以数字开头,不能是关键字,区分大小写
  2. 字节和位的关系
    1bytes = 8 bit
  3. 二哥使用utf-8编码时,占的位数和字节数是多少?使用gbk时占的位数和字节数?
    utf-8:欧洲16位2个字节 亚洲24位3个字节 gbk:英文8位1个字节 中文16位2个字节
  4. 默写字符串的12个功能,描述其作用
    1.startswith() 判断是否以xxx开头
    2.endswith() 判断是否以xxx结尾
    3.find()元素查找,找不到返回-1
    4.insert()元素查找,找不到报错
    5.capitalize()首字母大写
    6.upper()字符串变大写生成新字符串
    7.lower()字符串小写生成新字符串
    8.strip()去除字符串两边的空格、换行符、制表符,并得到一个新的字符串
    9.replace()替换字符串得到新的字符串
    10.split()根据特定字符切开之后保存在列表中
    11.join()字符串拼接得到新的字符串
    12.len()获取字符串的长度
  5. 数字、字符串、列表、元组、字典对应bool值的false分别是什么?
    数字:0
    字符串:''
    列表:[]
    元组:()
    字典:{}
    6.书写python2与python3的三种不同
python2     python3
print''     print()
xrange      range
raw_input   input

7.利用切片对列表实现其功能
li = [1,3,2,'a',4,'b',5,'c']
通过对li列表的切片形成新列表l3,l3 = [1,2,4,5]

l3 = li[0:-1:2]
print(l3)

通过对li列表的切片形成新列表l4,l4 = [3,'a','b']

l4 = li[1:-1:2]
print(l4)

通过对li列表的切片形成新列表l5,l5 = ['c']

l5 = li[-1:-2:-1]
print(l5)

通过对li列表的切片形成新列表l6,l6 = ['b','a',3]

l6 = li[-3:0:-2]
print(l6)

8.组合嵌套
a.写代码,以下列表,按照要求实现每一个功能
lis = [['k',['qwe',20,{'k1':['tt',3,'1']},89],'ab']]
将lis中的‘tt’变成大写(两种方式)

lis[0][1][2]['k1'][0] = lis[0][1][2]['k1'][0].upper()  #方法一
lis[0][1][2]['k1'][0] = lis[0][1][2]['k1'][0].replace('tt','TT') #方法二

将列表中的数字3变成字符串‘100’(两种方式)

lis[0][1][2]['k1'][1] = '100' #方法一
lis[0][1][2]['k1'].remove(3) #方法二
lis[0][1][2]['k1'].insert(1,'100')

将列表中字符串‘1’变成数字101(两种方式)

lis[0][1][2]['k1'][2] = 101 #方法一
lis[0][1][2]['k1'].remove('1') #方法二
lis[0][1][2]['k1'].insert(2,101)
print(lis)

b.写代码,以下字典,按要求实现功能
dic = {'k1':'v1','k2':['alxe','sb'],(1,2,3,4,5):{'k3':['2',100,'wer']}}
将k2对应的值最后面添加一个元素'23'
dic['k2'].append('23')
将k2对应的值的第一个位置插入'a'
dic['k2'].insert(0,'a')
将(1,2,3,4,5)对应的值添加一个键值对k4,v4
dic[(1,2,3,4,5)].setdefault('k4','v4')
将(1,2,3,4,5)对应的值添加一个键值对(1,2,3),'ok'
dic[(1,2,3,4,5)].setdefault((1,2,3),'ok')
将k3对应的值‘wer’改为‘qq’

dic[(1,2,3,4,5)]['k3'][2] = 'qq'
print(dic)

9.转化题
int与str之间如何转化,转化结果是什么?有没有条件?

s = str(1)  #数字转化为字符串
y = int('1')  #字符串转化为数字

int与bool之间如何转化,转化结果是什么?有没有条件?

a = bool(2)  #int转换为bool 0转换为False 其他为True
b = int(False) #False转化为0  True转化为1

str与bool之间如何转化,转化结果是什么?有没有条件?

c = str(False) #bool转化为字符串结果转化为字符串类型
d = bool('sgh')  #字符串转化为bool只要字符串不是空字符串就为True否则为False

str与list能否转换?如何转化?

e = list('ksjjgk')  #字符串转化为列表
f = ['hgj','uy','ytg']  #列表转化为字符串
h =''.join(f)
print(type(h))

10.实现下列结果
(1)有列表li = ['alex','wusir','rain'],通过操作该列表构造一个字符串s = ‘alexwusirrain’

li = ['alex','wusir','rain']
s = ''.join(li)
print(s)

(2)有列表li = ['alex','wusir','rain'],通过操作该列表构造一个字符串s = ‘alexwusirrain’

s = '*'.join(li)
print(s)

(3)有字符串s = 'alexwusirrain',通过操作该字符串构造一个列表li = ['a','exwusirrain']

s = 'alexwusirrain'
li = s.split('l')
print(li)

(4)有字符串s = 'alex wusirrain',通过操作该字符串构造一个列表li = ['alex','wusirrain']

s = 'alex wusirrain'
li = s.split(' ')
print(li)

(5)有字符串s = 'alex'通过操作该字符串构造一个s1 = 'a_l_e_x'

s = 'alex'
s1 = '_'.join(s)

11.分别使用while循环和for循环打印1-2+3-4......+99的结果
while

sum = 0
count = 0
while count < 100:
    count += 1
    if count % 2 == 0:
        sum -= count
    else:
        sum += count
print(sum)

for

sum = 0
for i in range(1,100):
    if i % 2 == 0:
        sum += i
    else:
        sum -= i
print(sum)
print(s1)

12.使用range打印100,99,88...2,1,0

for i in range(100,-1,-1):
    print(i)

13.计算用户输入内容,中索引为奇数,并且and,对应的元素为数字的isdigit()个数(没有则个数为零)

content = input('请输入内容:')
count = 0
for i in range(len(content)):
    if (i % 2 != 0) and content[i].isdigit():
        count += 1
print(count)

14.补充代码(从已有的代码开始写)
有如下值li = [11,22,33,44,55,66,77,88,99,90]将所有大于66的值保存
至字典的第一个key中,将小于66的值保存到第二个key的值中

result = {}
li = [11,22,33,44,55,66,77,88,99,90]
key1 = []
key2 = []
for row in li:
    if row > 66:
        key1.append(row)
    else:
        key2.append(row)
result['key1'] = key1
result['key2'] = key2
print(result)

15.查找列表li中的元素,移除每个元素的空格,并找出以'A'或'a'开头,并以’c‘结尾的所有元素,并添加到一个新列表中,最后循环打印这个列表

li = ['taibai','alexC','AbC','egon','Ritian','Wusir',' aqc']
new_li = []
for i in li:
    j = i.strip()
    if (j.startswith('A') or j.startswith('a')) and j.endswith('c'):
            new_li.append(j)
for x in new_li:
    print(x)

16.实现一个整数计算器:
如:content = input('请输入内容:')如用户输入5+7+8...(最少输入两个数相加)然后进行分割再进行计算,将最后的计算结果添加到此字典中(替换None)

dic = {'最终计算结果':None}
content = input('请输入内容:').split('+')
sum = 0
for i in content:
    sum += int(i)
dic['最终计算结果'] = sum
print(dic)

17.写程序:模拟公司hr录入员工账号密码的程序
(1)员工的账号密码存储在这种数据类型中:
(2)非法字符模板board = ['张三',‘李小四’,‘王二麻子’]
(3)hr输入用户名和密码(可以持续输入,如果想终止程序,那就在输入用户名时输入Q或q退出程序),在HR输入用户名时,检测此用户名是否存有非法字符,
如果有非法字符,则将其替换成同数量的(如王二麻子替换成***),然后添加到user_list中,如果没有非法字符,则直接添加到user_list中,
每次添加成功后打印出刚添加成功的用户名和密码

user_list = [
    {'user_name':'sdhjs','password':'213464'},
    {'user_name':'uiyi','password':'3416346'}
]
board = ['张三','李小四','王二麻子']
while 1:
    user_name = input('请输入用户名(按Q或q退出程序):')
    if user_name.upper() == 'Q':
        break
    password = input('请输入密码')
    for i in board:
        if i == user_name:
            user_name ='*'*len(i)
    dic = {}
    dic[user_name] = password
    print(dic)
    user_list.append(dic)
print(user_list)
posted @ 2020-11-13 08:11  北~屿  阅读(143)  评论(0)    收藏  举报