day 11 Python课上练习解释与基础知识练习题试题一

 

1,将文件对应的索引打印出来

方法1
test
= input(">>>>") print(test) l = len(test) print(l) t = range(l) for item in t: print(item,test[item])

# 方法精简2 test = input(">>>>") for item in range(0,len(test)): print(item,test[item])

 

 

2,练习题

 

 1、执行python脚本(script)的两种方式

(1)在Python解释器下,直接输入.py文件的路径(前提是环境变量已设置Python)  

(2)进入Python 进入解释器,实时输入并获取执行结果。

 

 

2、简述位、字节的关系

  一字节(Byte)=8 bit(二进制位)

 

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

最开始是acill,unicode,最后又出现了utf8(unicode的压缩版)

ascii    用8位二进制谁表示一字节

unicode 至少16位

utf-8     能少用则少用,不浪费内存,一个汉字用3个字节表示

gbk     中国使用,一个汉字用2个字节表示 

 

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

 

utf-8   一个汉字用3个字节表示   2个则6个字节 ,需48位     

gbk    1个汉字需2个字节,2个需4个字节,需32位

v='李杰'

在Python2  len(v)   结果为6  显示utf-8的字节           

在Python3中         显示为字符串的长度  即为 2 

 

在py3中       len(a)     2

 在py2中       len(a)     6

 

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

  单行  #       多行 '' '' ''

 

 

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

只能用字母,数字,下划线组成,数字不能开头,Python中的关键字不能声明为变量名,不要和Python内置的东西重复

 

 

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

n1=5
v=n1.bit_length()   # 当前数字的二进制,至少用多少位表示
print(v)

结果:3

 

 

8、布尔值分别有什么

True  False

     ""  假         0  假

     “ ”  真         其他  真

 

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

a='alex',

b=a.capitalize()

print('a','b')

结果为:alex    Alex

 

 

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

  name='  aleX'

 a、移除name变量对应的值两边的空格,并输出移除后的内容

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

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

 d、将name变量对应的值中的‘l’替换为‘p’,并输出结果

 e、将name变量对应的值根据‘l’分割,并输出结果

 f、请问上一题e分割后得到的值是什么类型(可选)  str

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

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

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

 j、请输出 name变量对应的值的第3个字符

 

name=' aleX'
v1=name.strip()
v2=name.startswith('al')
v3=name.endswith('X')
v4=name.replace('l','p')
v5=name.split('l')
v7=name.upper()
v8=name.lower()
v9=name[2]
v10=name[3]
print(v1,v2,v3,v4,v5,v7,v8,v9,v10)

 

 

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

  暂且认为:一个值若可以被for循环,则认为其为可迭代对象

test='goulonghui'

for item in test:

  print(item)

 

 

 

12、请利用代码实现:

      a.利用下划线将列表的每一个元素拼接成字符串,li='alexericrain'

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

li = "alexrucrain"
t = "_".join(li)
print(t)
li
= ["alex","eric","rain"] c = "_".join(li) print(c)

结果:

a_l_e_x_r_u_c_r_a_i_n
alex_eric_rain

 

 

13、Python2中的range和Python3中的range的区别

rang的用法(用于创建连续数字,也可设置步长)

这边python2 和python3的区别还不一样

python2 会立即创建

 

python3 在会调用的时候才创建

这是对python2的一次优化

 

py2的xrang 同py3中的rang

 

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

  如:

    content=input('请输入内容:')          #:5+9  或 3+5或 5+12

 

cotent = input('>>>')
v1, v2 = cotent.split('+')      # 把用户输入的字符串分割开来 分别赋值给v1,v2
a = int(v1)                      #  把v1,v2转换为整形
b = int(v2)
s = a + b
print(s)

 

 

 

 

 

 

15、简述int 和 9 等数字 以及 str和“xxoo”等字符串的关系

       int   指代整形           str   指代字符类型     

      创建的字符型是根据str类型创建的一个个对象

       int,str类,12,3,abc对象

 

 

 

17、制作趣味模板程序:

    需求:等待用户输入名字、地点、爱好,根据用户的名字和爱好进行任意实现

      如:敬爱可爱的 xxx ,最喜欢在xxx地方干xxx

user_name=input('>>>')
user_loc=input('>>>')
user_like=input('>>>')
v = '敬爱可爱的{name} ,最喜欢在{where}地方干{do}'
v = v.format(name = user_name,where = user_loc,do = user_like)
print(v)

 

 

 

18、制作随机验证码,不区分大小写

   流程:

  -用户执行程序

  -给用户显示需要输入的验证码

  -用户输入的值

    用户输入的值和显示的值相同时实现正确信息;否则继续生成随机验证码继续等待用户输入。

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)
    v = input('>>>')
    code = code.upper()         # 全部转换为大写 再进行比较
    v = v.upper()
    if v == code :
        print('验证成功')       # 如果二者相同,则打印验证成功,且退出循环
        break
    else:
        pass                    # 如果二者不同,则继续循环

 

 

 

 

19、开发敏感词汇过滤程序,请使用户输入内容,如果用户输入的内容中包含特殊的字符:

    如:‘苍老师’、‘东京热’,则将内容替换为***

 

v = input('>>>')
v = v.replace('苍老师','***')
v = v.replace('东京热','***')          # 分2次替换v 即可实现
print(v)

 

 

 

 

20、制作表格

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

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

 

s=''                                # 定义一个空字符
while True:
    v1 = input('用户名:')
    if v1 == 'q'or v1 == 'Q':               # 输入q 或者 Q时 不在输入
        break
    else:
        pass
    v2 = input('密码:')
    v3 = input('邮箱:')
    if len(v1) > 20 or len(v2) > 20 or len(v3) > 20:             #  输入的字符串如果是大于20个 则取前20 
        v1 = v1[0:20]
        v2 = v2[0:20]
        v3 = v3[0:20]
    else:
        pass
    template = '{0}\t{1}\t{2}\n'    # template 为定义的普通变量名  定义一个format格式
    v = template.format(v1,v2,v3)
    s = s + v                           # 在空字符串的基础上 叠加
print(s.expandtabs(20))

 

 

 

posted @ 2018-12-07 22:01  行者Sun  阅读(1315)  评论(0编辑  收藏  举报