Python练习题15道(附答案)

1、判断变量名是否合法

value = input('变量名:')
if value[0].isdigit():
    print('不合法')
else:
    for i in value:
        if i.isalpha() or i == '_':
            print('合法')
            break
        else:
            print('不合法')

2、输出1-2+3-4+5-6+…99的和

i = 0
sum = 0
while i < 100:
    sum += i
    i += 2
print('result is : %d' %(((1+99)*99)/2-sum))

3、使用while循环实现输出1,2,3,4,5,7,8,9,11,12

i = 1
while i <= 12:
    if i == 6 or i == 10:
        i += 1
        continue
    else:
        print(i, ' ',end='')
    i+=1

4、完成用户管理系统:实现功能如下
1).注册新用户
2).用户登录
3).注销用户
4).显示用户信息
5).退出系统(exit(0))

menu = """
    1).注册新用户,
    2).用户登录,
    3).注销用户,
    4).显示用户信息,
    5).退出系统
"""
users = []
passwds = []
def AddUser(user,passwds):
    UserName = input("请输入新用户名称:")
    user.append(UserName)
    Password = input("请输入用户密码:")
    passwds.append(Password)
    print("注册成功")
def LoginUser(user,passwd):
    Name = input("请输入用户名称:")
    Passwd = input("请输入密码:")
    if Name in user:
        if Passwd ==passwd[user.index(Name)]:
            print("登陆成功")
        else:
            print("登录失败")
    else:
        print("用户不存在")
def DeleteUser(user,passwd):
    Name = input("请输入要删除的名字:")
    if Name not in user:
        print('注销失败')
    else:
        i = user.index(Name)
        passwd.pop(i)
        print("注销用户成功")
def FindUser(user,passwd):
    s = {user,passwd}
    print("user:%s passwd:%s" %(user,passwd))
def ExitSystem():
    print("退出系统")
    exit()
while True:
    print(menu)

    choose = input('请输入选择:')
    if choose == '1':
        AddUser(users,passwds)
    elif choose == '2':
        LoginUser(users,passwds)
    elif choose == '3':
        DeleteUser(users,passwds)
    elif choose == '4':
        FindUser(users,passwds)
    elif choose == '5':
        ExitSystem()
else:
    ExitSystem()

5、将列表中所有内容都变为小写;
li = [‘frdgrfgdsHHJJ’, ‘cdsfregHHHJDGF’]

for i in range(len(li)):
    li[i] = li[i].lower()
print(li)

6、现有如下两个变量,请简述 n1 和 n2 是什么关系?
n1 = 123456
n2 = n1

将变量n1存储的值复制一份给n2,
两个变量所存储的值相等 n1 = n2 = 123456,但是两个变量在内存中的地址不同

7、请在下面的空白处填写运行结果
seq = [1, 2, 3, 4]
seq[:2]
seq[-2:]
seq[10:]
seq[::-1]
seq[:]
id(seq[:]) == id(seq)

[1, 2]
[3, 4]
[]
[4, 3, 2, 1]
[1, 2, 3, 4]
False

8、写代码,有如下列表,按照要求实现每一个功能
a. 计算列表长度并输出
b. 列表中追加元素 “seven”,并输出添加后的列表
c. 请在列表的第 1 个位置插入元素 “Tony”,并输出添加后的列表
d. 请修改列表第 2 个位置的元素为 “Kelly”,并输出修改后的列表
e. 请删除列表中的第 2 个元素,并输出删除的元素的值和删除元素后的列表
f. 请删除列表中的第 3 个元素,并输出删除元素后的列表
g. 请删除列表中的第 2 至 4 个元素,并输出删除元素后的列表
h. 请将列表所有的元素反转,并输出反转后的列表

li = ['happy', 'lucky','linux']
###a
print(len(li))
###b
li.append('seven')
print(li)
###c
li.insert(0,'Tony')
print(li)
###d
li[1] = 'Kelly'
print(li)
###e
s = li.pop(1)
print(s,li)
###f
li.pop(2)
print(li)
###g
for i in range(3):
    li.pop()
print(li)
###h
li=li[::-1]
print(li)

9、字典 dic = {‘k1’: “v1”, “k2”: “v2”, “k3”: [11,22,33]}
a. 请循环输出所有的 key
b. 请循环输出所有的 value
c.请循环输出所有的 key 和 value
d.请在修改字典中 “k1” 对应的值为 “harry”,输出修改后的字典
e.请在 k3 对应的值中追加一个元素 44,输出修改后的字典
f.请在 k3 对应的值的第 1 个位置插入个元素 18,输出修改后的字典

###a
dic = {'k1': "v1", "k2": "v2", "k3": [11, 22, 33]}
for i in dic.keys():
    print(i)
###b
for i in dic.values():
    print(i)
###c
for k, v in dic.items():
    print(k,v)
###d
dic['k1'] = 'harry'
print(dic)
###e
dic['k3'].append(44)
print(dic)
###f
dic['k3'].insert(0,'18')
print(dic)

10、重复的单词: 此处认为单词之间以空格为分隔符, 并且不包含,和.;
# 1. 用户输入一句英文句子;
# 2. 打印出每个单词及其重复的次数;

Sentence = input('Enter sentence :')
str = Sentence.split()

WorldCount = {}
for num in str:
    if num in WorldCount:
        WorldCount[num] += 1
    else:
        WorldCount[num] = 1
print(WorldCount)

11、元素分类 有如下值集合 [11,22,33,44,55,66,77,88,99,90],将所有大于 66 的值保存至字典的第一个 key 中,将小于 66 的值保存至第二个 key 的值中 即: {‘k1’: 大于 66 的所有值, ‘k2’: 小于 66 的所有值}

a = {11,22,33,44,55,66,77,88,99,90}
Dict = {'k1':[],'k2':[]}
for i in a:
    if  i <= 66:
        Dict['k2'].append(i)
    if i < 66:
        Dict['k1'].append(i)
print(Dict)

12、九九乘法表输出

i = 1
while i <= 9:
    j = 1
    while j <= i:
        print("%d * %d = %2d " %(j,i,j*i),end='')
        j += 1
    i += 1
    print('')

13、求两个数的最大公约数和最小公倍数

Num1 = int(input('第一个数:'))
Num2 = int(input('第二个数:'))

Min_Num = min(Num1,Num2)
for i in range(1,Min_Num+1):
    if Num1 % i == 0 and Num2 % i == 0:
        GCD = i
    LCM = (Num1 * Num2) / GCD
print('最大公约数:%d\n最小公倍数:%d' %(GCD,LCM))

14、字符串: a = ‘abcd’, 用2个方法取出字母d

a = 'abcd'
print(a[3:])
print(a[a.find('d')])

15、列表b = [1,2,3,4,5]
(1).用2种方法输出下面的结果:[1,2,3,4,5,6,7,8]
(2).用列表的2种方法返回结果:[5,4]
(3).判断2是否在列表里

(1)
b = [1,2,3,4,5]
print(b + [6,7,8])

b.append([6,7,8])
print(b)

(2)
b = [1,2,3,4,5]
print(b[::-1][:2])
print(b[3:][::-1])
(3)
b=[1,2,3,4,5]
print(2 in b)

你可能感兴趣的:(Python练习题15道(附答案))