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))
其实,要想实现一个功能,程序可以有很多种方法。我们不仅仅是局限于当期,写完一个程序要多思考、多完善。加油!
Python小白学习之路(四)——第一次练习题的更多相关文章
- Python小白学习之路(二十四)—【装饰器】
装饰器 一.装饰器的本质 装饰器的本质就是函数,功能就是为其他函数添加附加功能. 利用装饰器给其他函数添加附加功能时的原则: 1.不能修改被修饰函数的源代码 2.不能修改被修饰函数的调用 ...
- Python小白学习之路(十四)—【作用域】【匿名函数】【编程方法论】【高阶函数】
吧啦吧啦内心戏 在没有具体学作用域之前,我在之前的学习笔记中就有提到 我开始以为是自己自创的词儿 没想到这个词早已经存在(手动捂脸) 真是个无知的小火锅(不知者无罪) 我发现自己最擅长做的事情,就是给 ...
- Python小白学习之路(二)—【Pycharm安装与配置】【创建项目】【运算符】【数据类型】
写在前面: 第二天的学习,感觉比昨天学习相对轻松一些,但是对于我这个编程语言功底很弱的人来说,还是稍稍微有些.....哈尔滨的天气一天天冷了下来,还飘着小雨,不过还是挺有意境的.充实而又忙碌的生活,让 ...
- Python小白学习之路(二十二)—【生成器】
一.什么是生成器? 生成器可以理解成是一种数据类型,特殊地是生成器可以自动实现迭代器协议其他的数据类型需要调用自己内置的__iter__方法所以换种说法,生成器就是可迭代对象 !回忆:很重要的迭代器协 ...
- Python小白学习之路(十)—【函数】【函数返回值】【函数参数】
写在前面: 昨天早睡之后,感觉今天已经恢复了百分之八十的样子 又是活力满满的小伙郭 今日份鸡汤: 我始终相信,在这个世界上,一定有另一个自己,在做着我不敢做的事,在过着我想过的生活.-------宫崎 ...
- Python小白学习之路(三)—【数字功能】【字符串功能】
数字(int)常见功能 在网络课上,老师把这些功能称为神奇的魔法,想要揭开魔法神奇的面纱,想要看看有什么招数,在Pycharm里敲击三个字母(int),按住Ctrl,将鼠标点在int上,这时鼠标会变成 ...
- Python小白学习之路(二十)—【打开文件的模式二】【文件的其他操作】
打开文件的模式(二) 对于非文本文件,我们只能使用b模式,"b"表示以字节的方式操作(而所有文件也都是以字节的形式存储的,使用这种模式无需考虑文本文件的字符编码.图片文件的jgp格 ...
- Python小白学习之路(十八)—【内置函数三】
一.对象操作 help() 功能:返回目标对象的帮助信息 举例: print(help(input)) #执行结果 Help on built-in function input in module ...
- Python小白学习之路(十五)—【map()函数】【filter()函数】【reduce()函数】
一.map()函数 map()是 Python 内置的高阶函数 有两个参数,第一个是接收一个函数 f(匿名函数或者自定义函数都OK啦):第二个参数是一个 可迭代对象 功能是通过把函数 f 依次作用在 ...
随机推荐
- devart 放大招了
前面我纪念BDE 的文章里面说过,devart 会在今后在数据库存取技术上会有更大的 进步,没想到很快devart 放大招了.在最新的unidac 和sdac 中,devart 支持在非Windows ...
- 2018.09.12 earthquake(最优比率生成树)
描述 地震已经破坏了农夫约翰所有的农场以及所有连接农场的道路.作为一个意志坚强的人,他决定重建所有的农场.在重建全部N(1 <= N <= 400)个农场之前,首先必须把所有农场用道路连接 ...
- java多线程同步(转)
原文地址:http://developer.51cto.com/art/201509/490965.htm 一.场景 因为当我们有多个线程要同时访问一个变量或对象时,如果这些线程中既有读又有写操作时, ...
- yum基本操作(转)
原文地址:http://www.cnblogs.com/chuncn/archive/2010/10/17/1853915.html yum(全称为 Yellow dog Updater, Modif ...
- Linux服务器部署系列之三—DNS篇
网上介绍DNS的知识很多,在这里我就不再讲述DNS原理及做名词解释了.本篇我们将以一个实例为例来讲述DNS的配置,实验环境如下: 域名:guoxuemin.cn, 子域:shenzhen.guoxue ...
- python 爬虫括号的用法
首先是文档说明: >>> import re >>> help(re.findall) Help on function findall in module re: ...
- PrefixHeader.pch 在工程中的使用
1) 新建一个pch文件 2) 在 工程 Build Settings 中搜索 header 将Precompile Prefix Header 置为YES 2) 选中pch文件, 将右侧相对路径 ...
- 【转】Android贪吃蛇源代码
/*TileView:tile有瓦片的意思,用一个个tile拼接起来的就是地图.TileView就是用来呈现地图的类*/ public class TileView extends View { /* ...
- jQueryUI datepicker 报错: TypeError: inst is undefined
前提:要引用的js等都引用好了 调用日期控件的input: <input id="starttime" name="starttime" class=&q ...
- Linux 系统中进程5中常见状态
运行.中断.不可终端.僵死.停止 R(运行):正在运行 or 在运行队列中等待: S(中断):处于休眠中,等待接收信号,并脱离改状态: D(不可中断):不响应信号输入,即使kill也不起作用: Z(僵 ...