Python小白学习之路(四)——第一次练习题

写在前面:

今天下雪了呢!连着两天都没有更新学习记录。

我没有偷懒呢。做了一天的练习题,昨天学的内容还没总结完,太累了就回去睡觉了

连续一周早起,强大的内心也无法支撑我疲惫的身体

今天早起做了整理。加油哦(贵在坚持,一定要好好坚持下去)

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

(1)进入python解释器,等待用户实时输入
(2)python.exe + 执行文件的路径

2.简述位、字节的关系

1字节 = 8位

3.简述 ASCII,Unicode,utf-8、gbk 的关系

ASCII是最早美国用的标准信息交换码,把所有的字母的大小写,各种符号用二进制来表示,共有256中,加入些拉丁文等字符,1bytes代表一个字符.

Unicode是为了统一世界各国语言的不用,统一用2个bytes代表一个字符,可以表达2**16=65556个,称为万国语言,特点:速度快,但浪费空间,可以用在内存处理中,兼容了utf-8,gbk,ASCII.

utf-8是为了改变Unicode的浪费内存空间的缺点,规定1个英文字符用1个字节表示,1个中文字符用3个字节表示,特点;节省空间,速度慢.

gbk是中文的字符编码,用2个字节代表一个字符.

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

utf-8: 48位
gbk: 32位

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

单行注释: #
多行注释: """......"""

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

变量由数字、字母和下划线构成。
需要注意三点:第一,第一位不可以是数字;第二,不可以使用python里的关键字;第三,尽量不要和python内置的东西重复

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

程序:
test = 5
v = test.bit_length()
print(v)

运行结果:
3

8.布尔值分别有什么?

真(True)或假(False),真为1 假为0

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

a  =  "alex" b  =  a.capitalize()
print(a)
print(b)

请写出输出结果: alex Alex
#(说明字符串一旦创建便不可修改)

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

name  =  "  aleX"
    a.  移除 name 变量对应的值两边的空格,并输入移除后的内容
    b.  判断 name 变量对应的值是否以  "al"  开头,并输出结果
    c.  判断 name 变量对应的值是否以  "X"  结尾,并输出结果
    d.  将 name 变量对应的值中的  “l”  替换为  “p”,并输出结果
    e.  将 name 变量对应的值根据  “l”  分割,并输出结果。
       
    f.  请问,上一题  e  分割之后得到值是什么类型(可选)?
    g.  将 name 变量对应的值变大写,并输出结果
    h.  将 name 变量对应的值变小写,并输出结果
    i.  请输出 name 变量对应的值的第 2 个字符?
    j.  请输出 name 变量对应的值的前 3 个字符?

程序:

name = ‘ aleX‘
a = name.lstrip()
b = name. startswith(‘al‘)
c = name.endswith(‘X‘)
d = name.replace(‘l‘,‘p‘)
e = name.partition(‘l‘)
f = type(e)
g = name.upper()
h = name.lower()
i = name[1]
print(a,b,c,d,e,f,g,h,i)

运行结果:

aleX False True apeX (‘ a‘, ‘l‘, ‘eX‘) <class ‘tuple‘> ALEX alex

#请输出 name 变量对应的值的前 3 个字符

for j in range(0,3):
  print((name[j]))

运行结果:

a

k.  请输出 name 变量对应的值的后 2 个字符?
    l.  请输出 name 变量对应的值中  “e”  所在索引位置?
    m.  获取子序列,仅不包含最后一个字符。如:  oldboy  则获取  oldbo;  root  则获取  roo

#k.程序一:
name = ‘ aleX‘
for j in range(4,6):
print(name[j])

#k.程序二:
name = ‘ aleX‘
v = name[4:6]
print(v)

#k.程序三:
name = ‘ aleX‘
v1 = name.find(‘e‘)
v2 = name.find(‘X‘)
for j in range(v1,v2 + 1):
print(name[j])‘

#l.程序:
name = ‘ aleX‘
v1 = name.find(‘e‘)
print(v1)

#m.程序:
name = ‘ aleX‘
v1 = name.find(‘X‘)
v2 = name[0:v1]
print(v2)

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

字符串为可迭代对象。

程序:
test = ‘abcdefg‘
for j in test:
print(j)

#简单的来理解,可迭代对象为可以被for进行循环获取的

22.请用代码实现:

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

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

a.程序:
li = "alexericrain"
v = ‘_‘.join(li)
print(v)

b.程序:
li = [‘alex‘, ‘eric‘, ‘rain‘]
v1 = ‘‘.join(li)
v2 = ‘_‘.join(v1)
print(v2)

#b题的程序我是在还没有学习列表知识前就试着想把列表转成字符串来处理。
#是因为我理解错题目意思了,对于列表中的每一个元素,是用逗号来分割的。

#改程序如下:
li = [‘alex‘, ‘eric‘, ‘rain‘]
v1 = ‘_‘.join(li)
print(v1)

23.Python2 中的 range 和 Python3 中的 range 的区别

在Python2中,range一旦创建,内存便开辟,连续数字已经创建。python中有xrange,用法同Python中的range
在Python3中,rang创建之后,需要通过for循环来一个一个创建连续数字,也可以通过参数设置来确定步长

24.实现一个整数加法计算器

程序:
while True:
  num1 = input(‘请输入第一个加数:‘)
  x1 = int(num1)
  num2 = input(‘请输入第二个加数:‘)
  x2 = int(num2)
  print(x1,‘+‘,x2,‘=‘,x1 + x2)

#我想,我的理解能力真的有待提高,老师的意思是用户直接输入5+9,让我来写程序计算结果(手动捂脸)
#修改程序:

while True:
  test1 = input(">>>")
  test2 = test1.partition(‘+‘)
  v1 = int(test2[0])
  v2 = int(test2[2])
  print(v1+v2) 

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

test = input(">>>")
m = 0
n = 0
for j in test:
    if (96 < ord(j) < 123) or (64 < ord(j) < 91):
        m += 1
    elif 47 < ord(j) < 58:
        n += 1
    else:
        pass
print(‘字母个数:‘,m,‘数字个数:‘,n)

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

类和对象的关系

27.制作趣味模板程序

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

while True:
    test1 = input(‘请输入您的姓名:‘)
    test2 = input(‘请输入您喜欢做的事情:‘)
    test3 = input(‘请输入您喜欢在哪里做喜欢的事情‘)
    v1 = [test1,‘最喜欢在‘,test3,test2]
    v2 = ‘‘.join(v1)
    print(v2)

#我好想总是喜欢把问题复杂化,可能是学过的知识不能灵活应用
#慢慢来吧,其实这个题用.format直接格式化会很简单

#程序修改:
while True:
    test = ‘敬爱可亲的{0},最喜欢在{1}{2}‘
    name = input(‘请输入您的姓名:‘)
    something = input(‘请输入您喜欢做的事情:‘)
    place = input(‘请输入您喜欢在哪里做喜欢的事情:‘)
    v = test.format(name,place,something)
    print(v)

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)
    usercode = input(‘>>>‘)
    v = usercode.upper()
    if v == code:
        print(‘验证码输入正确‘)
        break
    else:
        print(‘验证码输入错误‘)

29.开发敏感词语过滤程序,提示用户输入内容,如果用户输入的内容中包含特殊的字符:

如  "苍老师"  "东京热",则将内容替换为  ***

while True:
    test = input(‘>>>‘)
    v = test.replace(‘东京热‘,‘***‘)
    v = v.replace(‘苍井空‘,‘***‘)
    print(v)

30. 制作表格

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

while True:
    test1 = input(‘username:‘)
    test2 = input(‘password;‘)
    test3 = input(‘mailbox:‘)
    test4 = ‘ username\t password\t mailbox\n‘
    test5 = [test1, ‘\t‘, test2, ‘\t‘, test3]
    v1 = test4.expandtabs(20)
    v2 = ‘‘.join(test5)
    v4 = v2.expandtabs(20)
    print(v1, v4)
    if input(‘‘) == ‘q‘ or ‘Q‘:
        break
    else:
        pass

#我自己写的这个程序后面发现是有点问题的,因为只能打印一个用户的信息,当下一个用户信息输入时,就会覆盖掉前一个用户信息

#程序完善:
s = ‘username\tpassword\tmailbox\n‘
while True:
    test1 = input(‘username:‘)
    test2 = input(‘password;‘)
    test3 = input(‘mailbox:‘)
    template = ‘{0}\t{1}\t{2}\n‘
    v = template.format(test1,test2,test3)
    s = s + v
    if input(‘‘) == ‘Q‘ or ‘q ‘:
        break
    else:
        pass
print(s.expandtabs(20))

其实,要想实现一个功能,程序可以有很多种方法。我们不仅仅是局限于当期,写完一个程序要多思考、多完善。加油!

原文地址:https://www.cnblogs.com/guoruxin/p/9860545.html

时间: 2024-10-06 06:19:52

Python小白学习之路(四)——第一次练习题的相关文章

Python小白学习之路(二十二)—【生成器】

一.什么是生成器? 生成器可以理解成是一种数据类型,特殊地是生成器可以自动实现迭代器协议其他的数据类型需要调用自己内置的__iter__方法所以换种说法,生成器就是可迭代对象 !回忆:很重要的迭代器协议 对象必须提供一个 next 方法,执行该方法要么返回迭代中的下一项,要么就引起一个Stoplteration异常,以终止迭代(只能往后走不能往前退) 二.生成器的分类(两类) python中生成器的表现形式 python中提供生成器的方式 一类是生成器函数:另一类是生成器表达式 第一类:关于生成

Python小白学习之路(二十)—【打开文件的模式二】【文件的其他操作】

打开文件的模式(二) 对于非文本文件,我们只能使用b模式,"b"表示以字节的方式操作(而所有文件也都是以字节的形式存储的,使用这种模式无需考虑文本文件的字符编码.图片文件的jgp格式.视频文件的avi格式) rb:   以字节方式读文件 wb: 以字节方式写文件ab: 以字节方式追加文件 注:以b方式打开时,读取到的内容是字节类型,写入时也需要提供字节类型,所以不能指定编码 1. rb #错误举例 f = open ('test1.py', 'rb', encoding = 'utf

Python小白学习之路—变量、字符编码、字符拼接

变量命名规则: (1)变量名只能是字母,数字,下划线的任意组合. ex:_amber_666NAme (2)关键字不能声明为变量名 ex:['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not'

Python小白学习之路—while、for循环、运算

Python里面的循环跟其他语言里的循环基本一致,只是书写格式不同. 1.for循环: for [循环条件]:[循环语句] 满足循环条件,则执行循环语句,执行一次判断一次,不满足则结束循环. 简单的循环: in range() 表示在什么范围里 1 # 循环 自动累计加一 2 # 一个参数代表从0开始到多少 3 for i in range(10): 4 print("One:",i) 5 # 两个参数代表范围 6 for i in range(0,5): 7 print("

Python小白学习之路(十六)—【内置函数一】

将68个内置函数按照其功能分为了10类,分别是: 数学运算(7个) abs()   divmod()  max()  min()  pow()  round()  sum() 类型转换(24个) bool()  int()  float()  complex()  str()  bytearray() bytes() memoryview() ord() chr() bin() oct() hex() tuple() list() dict() set() frozenset( ) enumer

Python小白学习之路(十三)—【递归调用】

一.递归调用定义 在函数内部,可以调用其他函数. 如果在调用一个函数的过程中直接或间接调用自身本身,则称为递归调用 从某种意义上来说,递归调用可以实现无限循环 二.递归调用的特性 必须有一个明确的结束条件 每次进入更深一层递归时,问题规模相比上次递归都应有所减少 递归效率不高,递归层次过多会导致栈溢出 在计算机中,函数调用是通过栈(stack)这种数据结构实现的 每当进入一个函数调用,栈就会加一层栈帧 每当函数返回,栈就会减一层栈帧 由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢出

学习之路四十一丶简论重构

四月份的最后一天,写点心得,记录一下. 这个月一直忙着开发一个基于Win32 API的程序,大量运用了句柄等很多API的知识. 尤其随着代码量越来越大,逻辑越来越复杂,代码的清晰,健壮,扩展性成了一个需要重视的问题,也就是要适时的重构了. 一丶重构的时机 上个星期在修改一块重大逻辑的时候,需要修改很多代码,当时我犯了一个错误,一开始想了一个思路,但一上来没写多少就开始想着重构代码,目的是使其代码清晰以及可扩展. 可是随着时间的流失,不仅没有重构好,而且该改的逻辑也没有改好,我很郁闷,为什么会这样

Redis——学习之路四(初识主从配置)

首先我们配置一台master服务器,两台slave服务器.master服务器配置就是默认配置 端口为6379,添加就一个密码CeshiPassword,然后启动master服务器. 两台slave服务器配置如下: 1.先找到配置redis.windows-service.config文件修改port 6379 为port 6380 2.然后配置master服务器地址:slaveof 127.0.0.1 6379,然后主服务有密码还需要配置密码 masterauth CeshiPassword(本

小白学习之路,基础四(函数的进阶)

一,内置函数 前面已经认识了函数,对函数都有所了解了,其实呢,在Python中提供了很多内置的函数方便给我们调用.下面会给大家提到一些常用的常用内置函数的用法,当然还有一些其他没讲到的,你也可以看参考文档,深入学习一波.咳咳咳,不多说了,直接进入装逼的代码环节. 更多的内置函数详情请参考http://www.runoob.com/python3/python3-built-in-functions.html 1 abs(-3) #取绝对值 2 all([1,2,5,0]) #当全部为真或者全部不