ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python 周考 (一)

2020-12-31 21:02:13  阅读:1264  来源: 互联网

标签:count alex name python res inp print 周考


基础题

1、请说明python解释器与python语言的区别与联系:

  Python是一门解释型语言,代码想运行,必须通过解释器执行,Python的解释器本身也可以看作是个程序

2、执行python脚本的两种方式是?

  交互式:交互式环境下,敲完一条命令按下enter键马上能看到结果,调试程序方便。程序无法永久保存,关掉cmd窗口数据就消失了。

  命令行式:打开文本编辑器,在文本编辑器中写入一串字符。

3、python如何实现单行注释和多行注释

  单行注释:#        多行注释:''' '''   """ """" 三引号

4、定义一个变量有三个特性,分别为?等号比较的是?is比较的是?

  变量名  变量值  赋值号    等号比较的是值是否相等  is比较的是id是否相等

5、使用链式赋值的方式将10赋值给变量x,y,z

  x = y = z = 10

6、count = 10,使用增量赋值,将count的值增加111

  count+=101

7、使用一行代码将info=['egon',18,'male'] 将列表中的名字、年龄、性别分别赋值给变量name,age,gender

  name,age,gender = info

 

8、编写猜年龄程序

a)要求用户输入年龄,然后与程序后台存放的年龄进行比较,然后打印不同的提示信息,提示用户猜大了or猜小啦or猜对啦

b)要求最多三次则退出程序

age = 18
for i in range(3):
    inp_age = input('请输入年龄:').strip()

    if inp_age.isdigit():
        inp_age = int(inp_age)
        if inp_age > age:
            print('猜大啦')
        elif inp_age < age:
            print('猜小啦')
        else:
            print('猜对啦')
            break
    else:
        print('非法输入')
else:
    print('只有三次机会哦')

 

9、简述数据类型int、str、list、tuple、dict、set的应用场景

  int:记录年龄,个数,号码,等级等相关级别

  list:在[ ] 内用逗号分隔开多个任意类型的值

  tuple:元组就相当于一种不可变的列表,所以说元组也是按照位置存放多个任意类型的元素

  dict:按照key:value的方法存放多个值,其中key对value应该有描述性的效果

  set:去重(无法保证顺序)关系运算  集合内元素必须是不可变元素  集合内元素不能重复  集合内元素无序

10、有列表data=['alex',49,[1900,3,18]],分别取出列表中的名字,年龄,出生的年,月,日赋值给不同的变量

data=['alex',49,[1900,3,18]]
name = data[0]
age = data[1]
year = data[2][0]
date = data[1]
mouth = data[2][2]
print(name,age,year,date,mouth)

 

11、有如下列表,请取出第三个学生的第一个爱好

students=[
    {'name':'alex','age':38,'hobbies':['play','sleep']},
    {'name':'egon','age':18,'hobbies':['read','sleep']},
    {'name':'wupeiqi','age':58,'hobbies':['music','read','sleep']},
]
print(students[2]['hobbies'][0])  # music

 

12、有列表students_info = ['egon',18,['play',],['alex',18,['play','sleep']]],请取出第二个学生的第二个爱好

students_info = [['egon',18,['play',]],['alex',18,['play','sleep']]]
print(students_info[1][2])  # ['play', 'sleep']

 

13、所有数据类型都自带布尔值,布尔值为假的有:

#所有数据类型都自带布尔值
1、None,0,空(空字符串,空列表,空字典等)三种情况下布尔值为False
2、其余均为真 

 

14、请判断下述代码的结果为:

print(10 > 3 and 'alex' != 'sb' or 'abc' > 'd')
print(10 > 3 and 'alex' == 'sb' or 'abc' < 'd')
print(10 > 3 or 'alex' < 'sb' or 'abc' < 'd' and 'egon' == 'nb')
>>>:
True
True
True

 

15、阅读代码,请写出执行结果

if True or False and False:
    print('yes')
else:
    print('no')
# yes


if (True or False) and False:
    print('yes')
else:
    print('no')
# no

 

16、请使用while和for两种方式来循环所有可以循环的数据类型

# 编写for循环,利用索引遍历出每一个字符
msg='hello egon 666'
for x in msg:
    print(x,end=' ')

# 编写while循环,利用索引遍历出每一个字符
msg='hello egon 666'
res = 0
while res<len(msg):
    print(msg[res],end=' ')
    res+=1

 

17、编写while循环,让用户输入用户名和密码,如果用户未空或者数字,则重新输入

while True:
    inp_name = input('Username>>>: ').strip()
    inp_pwd = input('Password>>>: ').strip()
    if not inp_name or not inp_pwd:continue
    if inp_name == 'egon' and inp_pwd == '123':
        print('logging successful')
        break
    else:
        print('Username or Password Error')

 

18、输出1-100内所有的奇数

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

 

19、使用while循环输出1 2 3 4 5 6   8 9 10

count = 1
while count < 11:
    if count == 7:
        count+=1
        continue
    print(count)
    count+=1

 

20、求1-2+3-4+5 ... 99的所有数的和

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

 

21、请说明break和continue的区别

  break:中途退出,结束循环

  continue:结束当前循环进入下一循环

22、常用数据类型有:字符串、列表、元组、字典、集合,请分类

  按照存值个数分类    按照可变\不可变类型分类    按照取值方式分类(直接取,按照索引,按照key取值)  按照有序\无序分类

      按存值个数区分:

               

标量/原子类型       数字,字符串
容器类型 列表,元组,字典,集合

                       按照可变不可变区分:

可变 列表、字典
不可变

数字、字符串、元组

                       按访问顺序区分:

 

直接访问 数字
顺序访问(序列类型) 字符串,列表,元组
key值访问(映射类型) 字典

 23、阅读代码,请写出执行结果

a = 'alex'
b = a.upper()
print(a)
print(b)
# alex
# ALEX

 

24、写代码,有如下变量,请按照要求实现每一个功能

name = " aleX"
1)    移除 name 变量对应的值两边的空格,并输出处理结果
res = name.strip()
print(res)   #aleX
2)    判断 name 变量对应的值是否以 "al" 开头,并输出结果

res1 = name.startswith('al')
res2 = name.strip().startswith('al')
print(res1)  # False
print(res12) # True
3)    判断 name 变量对应的值是否以 "X" 结尾,并输出结果

res = name.endswith('X')
print(res)  # True
4)    将 name 变量对应的值中的 “l” 替换为 “p”,并输出结果
res = name.replace('l','p')
print(res)  # apeX
5)    将 name 变量对应的值根据 “l” 分割,并输出结果。
res = name.split('l')
print(res)  # [' a', 'eX']
6)    将 name 变量对应的值变大写,并输出结果

res = name.upper()
print(res) # ALEX
7)    将 name 变量对应的值变小写,并输出结果

res = name.lower()
print(res)  # alex
8)    请输出 name 变量对应的值的第 2 个字符?
res = name[1]
print(res)  # a
9)    请输出 name 变量对应的值的前 3 个字符?
res = name[0:3]
print(res)  # al
10)    请输出 name 变量对应的值的后 2 个字符?

res = name[-2::]
print(res) #eX
11)    请输出 name 变量对应的值中 “e” 所在索引位置?

res = name.index('e')
print(res)  # 3
12)    获取子序列,去掉最后一个字符。如: oldboy 则获取 oldbo。
str1 = 'oldboy'
res = str1[:-1]
print(res)

 

 25、有变量如下,将该文件中的文件名,文件大小,操作方法切割出来

msg='/etc/a.txt|365|get'
res = msg.split('|')
print(res)  # ['/etc/a.txt', '365', 'get']

 

26、msg = 'hello alex' 中的 'alex' 替换成 SB

msg = 'hello alex'
msg = msg.replace('alex','SB')
print(msg)  # hello SB

 

27、有如下值集合[11,22,33,44,55,66,77,88,99,90],将所有大于66的值保存至字典中的第一个key中,将小于66的值保存至第二个key中

k1 = []
k2 = []
msg = [11,22,33,44,55,66,77,88,99,90]
for x in msg:
    if x > 66:
        k1.append(x)
    elif x < 66:
        k2.append(x)
print({'k1':k1,'k2':k2})
# {'k1': [77, 88, 99, 90], 'k2': [11, 22, 33, 44, 55]}

 

28、有如下两个集合,pythons是报名python课程的学院名字集合,linuxs是报名linux课程的学院名字集合

pythons={'alex','egon','yuanhao','wupeiqi','cobila','biubiu'}
linuxs={'wupeiqi','oldboy','cobila'}

# 求出即报名python又报名linux课程的学员名字集合
res = pythons & linuxs
print(res)  # {'cobila', 'wupeiqi'}
# 求出所有报名的学生名字集合
res = pythons | linuxs
print(res)  # {'yuanhao', 'egon', 'cobila', 'wupeiqi', 'biubiu', 'oldboy', 'alex'}
# 求出只报名python课程的学员名字
res = pythons - linuxs
print(res)  # {'alex', 'yuanhao', 'egon', 'biubiu'}
# 求出没有同时这两门课程的学员名字集合
res = pythons ^ linuxs
print(res)  # {'egon', 'biubiu', 'oldboy', 'alex', 'yuanhao'}

 

29、什么是字符编码,如何避免乱码问题  

  字符编码就是以二进制的数字来对应字符集的字符

30、unicode转成utf-8的过程称之为encode 还是 decode

  encode

31、在python3中bytes类型与unicode类型二者之间如何相互转换

  1bytes = 8bits

32、使用with语法以文本的方式打开一个文件,并读出文件所有内容,该内容的数据类型是

  数据类型为字符类型

with open('a.txt','rt',encoding='utf-8') as f:
    f.read()

 

33、以b的方式打开文件,覆盖写入新内容"你好啊"wxx"

res = '你好啊wxx'
with open('a.txt','wb') as f:
    res = res.encode()   # 编码
    f.write(res)

 

综合题

1、编写登录接口

  基础需求:

    让用户输入用户名密码

    认证成功之后显示欢迎信息

    输错三次之后退出程序

count = 0
while count < 3:
    inp_name = input('Username >>>: ').strip()
    inp_pwd = input('Password >>>: ').strip()
    if inp_name == 'egon' and inp_pwd == '123':
        print('登录成功')
        break
    else:
        print('Username or Password Error')
        count +=1

 

  升级需求

    可以支持多个登录(提示,通过列表存多个账户信息)

    用户3次认证失败之后,退出程序,再次启动程序尝试登录时,还是锁定状态(需要把用户锁定的状态存到文件里面)

2、编写拷贝文件的程序,要求

  a)可以拷贝任意类型的文件

  b)在命令行中执行,命令格式为:python3 copy.py src_file dst_file

3、请用两种方式实现,将文件中的alex全部替换成SB的操作

4、编写购物车程序,实现注册,登录,购物,查看功能,数据基于文件存取

 

 

 

 

  

 

标签:count,alex,name,python,res,inp,print,周考
来源: https://www.cnblogs.com/ZhZhang12138/p/14218600.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有