Python 18:面试题

1. 执行Python的脚步本方式有哪些?

        两种。

        一种是通过调用python解释器,选择指定的文件进行执行。另一种是进入python解释器内,边编译边执行。

2. 简述位、字节的关系。

        1个字节=8位=8bit。计算机执行的时候是以字节进行的,但计算的时候是以位进行的。

3. 简述ASCII、Unicode、UTF-8、GBK的关系。

        ASCII只支持英文及数字和符号的编码,使用于以英语为主的国家。

        Unicode支持语言多,至少用16位,即2个字节去表示。如果是中文,则需要3个字节来表示。占用空间比较大,比较浪费空间。

        UTF-8:可以动态调整存储空间的大小。存储一个汉字需3个字节。

        另外ASCII可以和Unicode编码互转,UTF-8可以和Unicode编码互转,但ASCII和UTF-8不能直接互转,需要通过Unicode才能转换。

        GBK:是适合中文编码。一个汉字需要2个字节。如果是纯中文,使用GBK合适。

4. 请写出“快乐”分别用UTF-8和GBK编码所占的位数。

        UTF-8:2个字节,16位。

        GBK:2个字节,16位。

        words = “快乐”

        Python3中:len(words) #2个字符

        Python2中:len(words) #6个字节

5. Python单行注释和多行注释分别用什么?

        单行注释:用#。

        多行注释:用""" """或''' '''。

6. 声明变量注意事项有哪些?

        1. 变量命名规则:只能包含字母、数字和下划线,且不能以数字开头。

        2. Python关键字及内置函数不能作为变量名。

        3. 变量声明的要有意义,多个变量之间建议用下划线“_”进行连接。

        4. 常量的表示方式为字母全部大写。

7. 如有以下变量n1 = 5,请使用int 提供的方法,得到该变量最少可以用多少个字节?

        bit_length

8. 布尔值分别有什么?

        True 和 False。

        补充:

        空字符串为False,非空字符串为True。

        0为False,非0为True。

        bool():将数字、字符串转换成布尔值。

9. 字符串是否可以迭代对象?如可以请使用for循环每一个元素。

        可以。

        for item in str:

                print(item)

        可迭代对象。如果可以被for循环,就是可迭代对象。

10. Python2中的range和Python3中的range的区别。

        Python2中的range会直接创建。Python2中的xrange同Python3中的range用法一样。

        Python3中的range只有在循环、迭代的时候才创建,这样可以节省内存。

        补充:生成100到1的代码

        for i in range(100,0,-1)

                print(i) 

11.  编写一个如下整数加法计算器:

        value = input()  # 如: 10+9 5+3

va,vb = input().split('+')
va = int(va)
vb = int(vb)
print(va + vb)

11. 计算用户输入的内容中有几个十进制点小数?几个字母?

v1 = 0
v2 = 0
value = input("Please input: ")
for item in value:
    if item.isnumeric():
        v1 += 1
    if item.isalpha():
        v2 += 1
print(v1,v2)

12. 简述 int --- 9 ,str --- “hello world” , bool --- True 的关系

        类                 对象

       int                   9

        str                hello world

        bool                True

13. 编写简单的“某人”的“某爱好”是去“某地”。

name = input("Please input your name: ")
hobby = input("Please input your hobby: ")
place = input("Please input your favourite place: ")
words = f"The most respect and lovely is + {name} + , whose hobby is + {hobby} " \
        f"+ .Because the + {place} is very beautiful+ ."
print(words)

Please input your name: 1
Please input your hobby: 2
Please input your favourite place: e
The most respect and lovely is + 1 + , whose hobby is + 2 + .Because the + e is very beautiful+ .

14. 编写随机验证码,不区分大小写。要求如下:

        用户执行程序时,显示用户需要输入的验证码

        显示用户的输入值

                用户输入值和显示值一致时,显示正确信息。

                否则继续生成验证码让用户输入正确的值。

def check_code():
        import random
        checkcode = ''
        for item in range(6):
                current_code = random.randrange(0,6)
                if current_code != item:
                    temp = chr(random.randint(65,90))
                else:
                    temp = random.randint(0,9)
                checkcode += str(temp)
        return checkcode
while True:
        code = check_code().lower()
        print(code)
        value = input(">>>")

15. 过滤敏感词

        提示用户输入内容,如果用户输入内容中包含指定内容,则将内容替换为“*”。

banned_words = ['李易峰', '蔡徐坤']
while True:
    words = input("Please input your words: ")
    if words in banned_words:
        new_words = words.replace(words, "***")
        print(new_words)
    else:
        print(words)

16. 编写表格

        循环提示用户输入:用户名、密码、邮箱(要求用户输入的长度不超过20个字符,如果超过只显示前20个字符。)

        如果用户输入q或Q,则不再继续。将用户输入的内容以表格形式打印。

# 代码未完成,请慎重参考

words = ""
flag = True
while flag:
    user_name = input("Please input your name: ")
    if user_name == "q" or user_name == "Q":
        flag = False
        break
    password = input("Please input your password: ")
    if password == "q" or password == "Q":
        flag = False
        break
    email = input("Please input your email: ")
    if email == "q" or email == "Q":
        flag = False
        break
    template = f"{user_name}\t{password}\t{email}\n"
    word = template.format(user_name,password,email)
    words += word

print(words.expandtabs(20))

17. 

# 99乘法表
for i in range(1,10):
    string = ""
    for v in range(1,i + 1):
        string += f"{str(v )} * {str(i)} = {str(i * v) } \t"
    print(string)

1 * 1 = 1 	
1 * 2 = 2 	2 * 2 = 4 	
1 * 3 = 3 	2 * 3 = 6 	3 * 3 = 9 	
1 * 4 = 4 	2 * 4 = 8 	3 * 4 = 12 	4 * 4 = 16 	
1 * 5 = 5 	2 * 5 = 10 	3 * 5 = 15 	4 * 5 = 20 	5 * 5 = 25 	
1 * 6 = 6 	2 * 6 = 12 	3 * 6 = 18 	4 * 6 = 24 	5 * 6 = 30 	6 * 6 = 36 	
1 * 7 = 7 	2 * 7 = 14 	3 * 7 = 21 	4 * 7 = 28 	5 * 7 = 35 	6 * 7 = 42 	7 * 7 = 49 	
1 * 8 = 8 	2 * 8 = 16 	3 * 8 = 24 	4 * 8 = 32 	5 * 8 = 40 	6 * 8 = 48 	7 * 8 = 56 	8 * 8 = 64 	
1 * 9 = 9 	2 * 9 = 18 	3 * 9 = 27 	4 * 9 = 36 	5 * 9 = 45 	6 * 9 = 54 	7 * 9 = 63 	8 * 9 = 72 	9 * 9 = 81 	

18. 公鸡5文钱一只,母鸡3文钱一只,小鸡1文钱三只。用100文钱买100只鸡,必须要有公鸡、母鸡、小鸡。问公鸡、母鸡、小鸡,各多少只?

x,y,z = 0,0,0
for x in range(1,100//5):
    for y in range(1,100//3):
        for z in range(1,100):
            if x + y + z == 100 and 5*x + 3*y + z/3 == 100:
                print(x,y,z)

19. 请用下划线将列表的每一个元素拼接成字符串:li = ['abc','def','ghi','jkl']

li = ['abc','def','ghi','jkl']
lis ='_'.join(li)
print(lis,type(lis))

如果列表中含有整型,先将整型转换成字符串

li = ['abc','def','ghi',123]
li[3] = str(li[3])
lis ='_'.join(li)
print(lis,type(lis))

20. 元组操作

tu = ('abc','def','ghi')
# 计算运组的长度,并输出
print(len(tu))
# 获取元组的第二个元素,并输出
print(tu[1])
# 获取元组的第1-2个元素,并输出
print(tu[0:2])
# 请使用for输出元组的元素
for item in tu:
    print(item)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值