Day11 练习题

Day11

1、执行 Python 脚本的两种方式

方法一:  python3 1.py
方法二:  1.文件首行添加#!/usr/bin/env python3
        2.赋予执行权限 chmod u+x 1.py
        3.执行./1.py
直接python解释器执行

 


2、简述位、字节的关系

8位=1字节,“位”是数据存储的最小单位。字节也叫Byte,1Byte=8bit(位)

 


3、简述 ascii、unicode、utf-8、gbk 的关系

ascii只不能存储中文。1个字符战1字节,ascii只支持127个字符,但这只适用于26个英文以及常用符号,别的非英语国家怎么办,于是有了unicode,unicode是万国码,又称utf16,用两个字节表示一个字符,
2byte = 16bit,所以是2^16 = 65556个,好处是兼容性强,可以兼容 ascii utf8 gbk等字符集,但空间浪费大,原因是不论是哪种字符,都用2个字节表示。utf8是一种基于unicode的动态编码方式,用
1~4个字节表示字符,英文用一个字节表示,汉字用三个字节表示,utf-8编码进行存储时有极大地优势,但是当读取到计算机内存时却不大合适,因为utf-8编码是变长的,不方便寻址和索引,所以在计算机内存中,
还是转化为Unicode编码合适些。这就可以解释为什么每次读取文本时,要将编码转化为Unicode编码,而将内存中的字符写入文件存储时,要将编码转化为utf-8了,但因为是动态的(编码+存储格式),所以编码
或转换过程就会慢一些,但这些资源可忽略不计。gbk是针对汉字的编码方式,由中国国家标准总局发布,其包含关系如下: gb18030>gbk>gb2312>ascii是在ascii之上的字符集,用两个字节来表示一个字符,之
所以有这么多版本,那是因为国家发展了,用的字也多了。

 


4、请写出 “李杰” 分别用 utf-8 和 gbk 编码所占的位数

UTF-8 48位  6个字节
GBK   32位 4个字节

 


5、Pyhton 单行注释和多行注释分别用什么?

单行:#注释内容
多行:
"""
注释内容1
注释内容2
"""
或者
'''
注释内容1
注释内容2
'''

 


6、声明变量注意事项有那些?

1.由字母、数字、下划线组成
2.不能以数字开头
3.不能是关键字
4.不能是内置的东西

 


7、如有一下变量 n1    =    5,请使用 int 的提供的方法,得到该变量最少可以用多少个二进制位表示?

n1 = 5
print(n1.bit_length())

 


8、布尔值分别有什么?

True  也表示1,其他字符都是真
False 也代表0。空字符串也是假

 


9、阅读代码,请写出执行结果
                 a    =    "alex"
                 b    =    a.capitalize()
                 print(a)
                 print(b)
                 请写出输出结果:

alex
Alex

 


10、写代码,有如下变量,请按照要求实现每个功能
 name    =    "    aleX"
                 a.     移除 name 变量对应的值两边的空格,并输出移除后的内容

name = "    aleX"
print(name.strip())

 


                 b.     判断 name 变量对应的值是否以 "al"     开头,并输出结果

print(name.startswith('al'))

 


                 c.     判断 name 变量对应的值是否以 "X"     结尾,并输出结果

print(name.endswith('X'))

 


                 d.     将 name 变量对应的值中的 “l” 替换为 “p”,并输出结果

print(name.replace('l','p'))

 


                 e.     将 name 变量对应的值根据 “l” 分割,并输出结果。

print(name.split('l'))

 


                            
                 f.     请问,上一题 e     分割之后得到值是什么类型(可选)?

list 列表

 


                 g.     将 name 变量对应的值变大写,并输出结果

print(name.upper())

 


                 h.     将 name 变量对应的值变小写,并输出结果

print(name.lower())

 


                 i.     请输出 name 变量对应的值的第 2 个字符?

print(name[1])

 


                 j.     请输出 name 变量对应的值的前 3 个字符?

print(name[0:3])

 


                 k.     请输出 name 变量对应的值的后 2 个字符?

print(name[-2:])

 


                 l.     请输出 name 变量对应的值中 “e” 所在索引位置?

#方法一
print(name.find('e'))

#方法二
for i in range(len(name)):
    if name[i] == 'e':
        print(i,name[i])

 


                 m.     获取子序列,仅不包含最后一个字符。如: oldboy     则获取 oldbo;    root     则获取 roo

print(name[0:len(name) -1])

 


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

#可以迭代
name = "oldboy" for i in range(len(name)): print(i,name[i])

 


22、请用代码实现:
                 a.     利用下划线将列表的每一个元素拼接成字符串,li     = "alexericrain"

li = "alexericrain"
print('_'.join(li))

 


                 b.     利用下划线将列表的每一个元素拼接成字符串,li     = ['alex',    'eric',    'rain']               (可选)

li = ['alex','eric','rain']
print('_'.join(li))

 


23、Python2 中的 range 和 Python3 中的 range 的区别?

在python2中,range方法得到的结果就是一个确定的列表对象,列表对象所拥有的方法,range方法生成的结果对象都可以直接使用,而在python3中,range方法得到的对象是一个迭代器而不是一个确定的列表,如果
想要转化为列表对象则需要再使用list方法进行转化。python2 中需要占用更多的内存

 


24、实现一个整数加法计算器:输入的是字符串5 + 9 而不是两个数字
                 如:content    =    input('请输入内容:')               #     如: 5+9     或 5+    9     或 5    +    9    

while True:
    num1 = int(input('请输入第1个数字:'))
    num2 = int(input('请输入第2个数字:'))
    print(num1,"+",num2,"=",num1+num2)
    var = input("是否继续(y/n):")
    if var == 'n':
        break

 

value = "5 + 9"
v1, v2 = value.split("+")
print(value, "=", int(v1) + int(v2))

 


25、计算用户输入的内容中有几个十进制数?几个字母?(改用for循环)
                 如: content    =    input('请输入内容:')               #     如:asduiaf878123jkjsfd-213928    

content = input('请输入内容:')
count_str = 0
count_num =0
for i in content:if i.isdecimal():
        count_num += 1
    elif i.isalpha():
        count_str += 1
print("输入的内容含有几个字母:",count_str)
print("输入的内容含有几个数字:",count_num)

 


26、简述 int     和 9     等数字          以及          str     和 "xxoo"     等字符串的关系?

类和对象的关系


27、制作趣味模板程序
                 需求:等待用户输入名字、地点、爱好,根据用户的名字和爱好进行任意现实
       如:敬爱可亲的 xxx,最喜欢在 xxx 地方干 xxx

name = input('请输入姓名:')
city = input('请输入你喜欢的地点:')
hobby = input('请输入喜好:')
message = "敬爱可亲的" + name + ",最喜欢在" + city + "地方干" + hobby
print(message)
###或者如下####
template = "敬爱可亲的{0},最喜欢在{1}地方干{2}"
mess2 = template.format(name,city,hobby)

 

 

 

 


28、制作随机验证码,不区分大小写。
                 流程:
                                 - 用户执行程序
                                 - 给用户显示需要输入的验证码
                                 - 用户输入的值
                                                 用户输入的值和显示的值相同时现实正确信息;否则继续生成随机验证码继续等待用户输入
                                 生成随机验证码代码示例:

 

 

 

def check_code():
    import random
    checkcode = ''
    for i in range(4):
        current = random.randrange(0,4)
        if current != i:
            temp = chr(random.randint(65,90))
        else:
            temp = random.randint(0,9)
        checkcode += str(temp)
    return checkcode

while True:
    code = check_code()
    print("验证码:",code)
    inp_code = input("请输入验证码:")
    if inp_code.lower() == code.lower():
        print("验证通过,欢迎!!!!!")
        break
    else:
        print("验证码错误")

 


                                                
29、开发敏感词语过滤程序,提示用户输入内容,如果用户输入的内容中包含特殊的字符:
                 如 "苍老师"    "东京热",则将内容替换为 ***

msg = input('请输入内容:')
print(msg.replace('苍老师','***').replace('东京热','***'))

 


30、制作表格
                 循环提示用户输入:用户名、密码、邮箱 (要求用户输入的长度不超过 20 个字符,如果超过则只有前 20 个字符有效)
                 如果用户输入 q 或 Q     表示不再继续输入,将用户输入的内容以表格形式大隐

tables = ""
while True:
user = input("请输入用户名:")
pwd = input("请输入密码:")
email = input("请输入邮箱:")
if len(user) > 20:
user = user[0:20]
if len(pwd) > 20:
pwd = pwd[0:20]
if len(email) > 20:
email = email[0:20]
template = "{0}\t{1}\t{2}\n"
rows = template.format(user, pwd, email)
tables += rows
var = input("是否退出,输入q/Q 退出:")
if var.lower() == 'q':
break

header = "user\tpassword\temail"
print(header.expandtabs(21))
print(tables.expandtabs(21))

 

posted @ 2022-10-25 17:47  小白_XiaoBai  阅读(35)  评论(0)    收藏  举报