Python面试题

Python面试题-数据类型(3)

2020-01-24  本文已影响0人  复苏的兵马俑

11、使用range打印100,99,98,……,1,0。

# 方法一:
for i in range(0, 101):
    print(100 - i)
# 运行结果:
100
99
98
97
96
95
……
5
4
3
2
1
0
# 方法二:
for i in range(100, -1, -1):
    print(i)
# 运行结果:
100
99
98
97
96
95
……
5
4
3
2
1
0

12、计算用户输入内容中索引为奇数并且对应的元素为数字的个数(没有则个数为零)。

user_input = input('>>>')
lis = list(user_input)
count = 0
for i in range(len(lis)):
    if i % 2 != 0 and lis[i].isdigit():
        count += 1
    else:
        continue
print('count = {}'.format(count))

13、补充代码(从已有的代码下面继续写):

有如下值 li = [11,22,33,44,55,77,88,99,90],将所有大于66的值保存至字典的第一个key中,将小于66的值保存至第二个key的值中。
li = [11,22,33,44,55,77,88,99,90]
result = {}
for row in li:
……

# 方法一:
li = [11, 22, 33, 44, 55, 77, 88, 99, 90]
result = {}
for row in li:
    if row > 66:
        if 'Key1' not in result:
            result['Key1'] = []
        result['Key1'].append(row)
    else:
        if 'Key2' not in result:
            result['Key2'] = []
        result['Key2'].append(row)
print(result)
# 运行结果:
{'Key2': [11, 22, 33, 44, 55], 'Key1': [77, 88, 99, 90]}
# 方法二:
li = [11, 22, 33, 44, 55, 77, 88, 99, 90]
result = {}
for row in li:
    result.setdefault('Key1', [])
    result.setdefault('Key2', [])
    if row > 66:
        result['Key1'].append(row)
    else:
        result['Key2'].append(row)
print(result)
# 运行结果:
{'Key1': [77, 88, 99, 90], 'Key2': [11, 22, 33, 44, 55]}

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

li = ['taibai ','alexC','AbC ','egon',' Ritian',' Wusir',' aqc']

li = ['taibai ', 'alexC', 'AbC ', 'egon', ' Ritian', ' Wusir', '   aqc']
New_li = []
for s in li:
    if tuple(s.strip())[0].upper() == 'A' and tuple(s.strip())[-1] == 'c':
        New_li.append(s.strip())
print(New_li)
# 运行结果:
['aqc']

15、实现一个整数加法计算器:

如: content = input('请输入内容:') # 如用户输入:5 + 8 + 7……(最少输入两个数相加),然后进行分割再进行计算,将最后的计算结果添加到此字典中(替换None):
dic = {'最终计算结果':None}

sum = 0
lis = []
flag = 1
while flag:
    content = input('请输入计算式(如:5+8+7):').strip()
    lis = list(content)
    if len(content.split('+')) < 2:
        print('你输入的格式不正确(应该输入至少两个数的加法算式),请重新输入!')
    else if lis[-1] == '+':
        print('你输入的格式不正确(计算式不能以‘+’结尾),请重新输入!')
    else:
    for i in lis:
        if i.isdigit() or i == '+':
            flag = 0
            continue
        else:
            print('你输入的格式不正确(只能输入整数和‘+’),请重新输入!')
            flag = 1
            break
lis = content.split('+')
for i in lis:
    sum += int(i)
dic = {'最终计算结果': sum}
print('dic = {}'.format(dic))

16、写程序:模拟公司HR录入员工账号密码的程序。

1)员工的账号密码存储在这种数据类型中:
user_list = [
{'username':'barry','password':'1234'},
{'username':'alex','password':'asdf'}
……
]
2)非法字符模板:board = ['张三','李小四','王二麻子']
3)HR输入用户名、密码(可持续输入,如果想终止程序,那就在输入用户名时输入Q或q退出程序break),在HR输入用户名时,检测此用户名是否有board里面的非法字符,如果有非法字符,则将非法字符替换成同数量的*(如王二麻子替换成****),然后添加到user_list中,如果没有非法字符,则直接添加到user_list中,每次添加成功后,打印出刚添加的用户名、密码。

board = ['张三', '李小四', '王二麻子']
user_dict = {}
user_list = []
while 1:
    username = input('请输入用户名:')
    if username.upper() == 'Q':
        break
    else:
        password = input('请输入密码:')
        for s in board:
            if s in username:
                username = username.replace(s, '*' * len(s))
            else:
                continue
        user_dict['username'] = username
        user_dict['password'] = password
        user_list.append(user_dict)
        user_dict = {}
    print('恭喜你,用户{0}添加成功,用户名 = {0},密码 = {1}'.format(username, password))
print('所有用户列表如下:')
for dic in user_list:
    print('用户名 = {},密码 = {}'.format(dic['username'], dic['password']))
上一篇下一篇

猜你喜欢

热点阅读