【练习】Python第一,二次
练习一
1,执行Python脚本的两种方式
a,Python解释器 b,Python 1.py
2,简述位和字节的关系
一个字节等于8位
3,简述ascii,unicode,utf-8,gbk的关系
最开始ascii,表示信息有限。后来发明unicode给全球的字符编码,再后来为了节约信息位采用了压缩形式utf-8,gbk是使用两个字节的汉字专用编码
4,请写出“李杰”分别用utf-8和gbk编码所占的位数
utf-8:6字节
gbk:4字节
a = "李杰"
Python3
len(a) = 2
使用for循环,打印每个字符:李,杰
Python2
len(a) = 6 #按字节计算
使用for循环,循环输出六次:但是都是乱码,每个乱码代表一个字节
v = "李杰"
for item in v:
print(item)
5,Python单行注释和多行注释分别用什么?
单行注释#
多行注释““” ‘’‘
6,声明变量注意事项有哪些?
字母,数字,下划线。数字不能开头,不能用python关键字,最好不用python内置字符
7,如有一变量n1 = 5,请使用int提供的方法,得到该变量最少可以用多少个二进制位表示
ni = 10
v = ni.bit_length()
print(v)
8,布尔值分别有什么?
True False 首字母大写
”“(空字符串), 0,
9,阅读代码,请写出执行结果
a = "alex"
b = a.capitalize()
print(a) #输出alex
print(b) #输出Alex
字符串不可更改
10,写代码,有如下变量,请按照要求实现每个功能
a,移除name变量对应的值两边的空格,并输入移除后的内容
name = " aleX"
print(name)
name = name.strip()
print(name)
b,判断name变量对应的值是否以”al“开头,并输出结果
v = name.startswith('al')
print(v)
c,判断name变量对应的值是否以”X“结尾,并输出结果
v = name.endswith('X')
print(v)
d,将name变量对应的值中的”l“替换为”p“,并输出结果
v = name.replace('l','p')
print(v)
e,将name变量对应的值根据”l“分割,并输出结果。
v = name.partition('l')
print(v)
f,请问,上一题分割之后得到值是什么类型(可选)?
print(type(v))
g,将name变量对应的值便大写,并输出结果
v = name.upper()
print(v)
print(name)
h,将name变量对应的值变小写,并输出结果
v = name.lower()
print(v)
i,请输出name变量对应的值的第2个字符?
print(name[1])
j,请输出name变量对应的值的前3个字符?
print(name[0:3])
k,请输出name变量对应的值的后2个字符
name = "rooteded"
print(name[-2:len(name)])
l,请输出name变量对应的值中”e“所在索引位置
print(name.index('e'))
m,获取子序列,仅不包含最后一个字符。如oldboy则获取oldbo,root则获取roo
name = "oldboy"
print(name[0:-1])
21,字符串是否是可迭代对象?如可以请使用for循环每一个元素?
#字符串是可迭代对象,可以用for循环
for item in name:
print(item)
22,请用代码实现:
a,利用下划线将列表的每一个元素拼接成字符串,li = ”alexericrain“
li = "alexericrain"
v = '_'.join(li)
print(v)
b,利用下划线将列表的每一个元素拼接成字符串,li=['alex','eric','rain']
li = ['alex','eric','rain']
v = '_'.join(li)
print(v)
23,Python2中的range和Python3中的range的区别?
# Python2中直接创建在内容中,xrange相当于python3中的range
# python3中只有for循环时,才一个一个创建,保护机制
# r1 = range(10)
# r2 = range(1,10)
24,实现一个整数加法计数器:
content = input('请输入内容: ’) #如: 5+9
content = input("请输入内容:")
li = content.partition('+')
print(li)
li[0].strip()
li[2].strip()
print(int(li[0])+int(li[2]))
25,计算用户输入的内容中有几个十进制小数?几个字母?
content = input('请输入内容: ’) #如: adfadfd78797sdfsdf-998afd
count_m = 0
count_a = 0
content = input("请输入内容:")
for item in content:
if(item.isdecimal()):
count_m += 1
elif (item.isalpha()):
count_a += 1
else:
continue
print(count_m)
print(count_a)
26,简述int和9等数字,以及str和”xxoo“等字符串的关系?
int类,9实例,
str类,“xxoo”对象
27,制作趣味模板程序
需求:等待用户输入名字,地点,爱好,根据用户的名字和爱好进行任意显示
如:敬爱可亲的XXX,最喜欢在XXX地方干XXX
namein = input("请输入姓名:")
positionin = input("请输入地点:")
doingin = input("请输入爱好: ")
template1 = "敬爱可亲的{name},最喜欢在{position}地方干{doing}"
print(template1)
v = template1.format(name=namein,position=positionin,doing =doingin)
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)
user_input = input("请输入验证码: ")
if code == user_input:
print("输入正确,退出")
break
else:
continue
29,开发敏感词过滤程序,提示用户输入内容,如果用户输入的内容中包含特殊字符,如”苍老师“等,则将内容替换为 ***
content = input("please input:")
content = content.replace('苍老师','***')
print(content)
30,制作表格
循环提示用户输入:用户名,密码,邮箱(要求用户输入的长度不超过20个字符,如果超过则只有前20个字符有效)如果用户输入q或Q表示不再继续输入,将用户输入的内容以表格形式打印。
s = ''
while True:
user_name = input("请输入用户名: ")
user_password = input("请输入密码: ")
user_email = input("请输入邮箱: ")
temp = "{0}\t{1}\t{2}\n"
v = temp.format(user_name,user_password,user_email)
s = s + v
if user_name == 'q' or user_name =='Q':
break
print(s.expandtabs(20))
练习二
1,请用代码实现:利用下划线将列表的每一个元素拼接成字符串,li = ['alex','eric','rain']
v = '_'.join(li)
print(v) #有数字的情况
li = ['alex','eric',123]
li[2] = str(li[2])
v = '_'.join(li)
print(v)
2,查找列表中元素,移除每个元素的空格,并查找以a或A开头,并且以x结尾的所有元素。
li = ["alex"," aric","Alex","Tony","rain"]
for item in range(0,len(li)):
li[item] = li[item].strip()
print(li)
for item in li:
if item.upper().startswith('A') == True and item.endswith('x'):
print(item)
tu = ("alex"," aric","Alex","Tony","rain")
# tu元组不支持修改一级元素
for item in tu:
if item.upper().startswith('A') == True and item.endswith('x'):
print(item)
dic = {'k1':"alex",'k2':' aric',"k3":"Alex","k4":"Tony"}
print(dic)
for item in dic.items():
dic.update({str(item[0]):str(item[1]).strip()})
print(dic)
for item in dic.values():
if item.upper().startswith('A') == True and item.endswith('x'):
print(item)
3,写代码,有如下列表,按照要求实现每一个功能
li = ['alex','eric','rain']
a,计算列表长度并输出
print(len(li))
b,列表中追加元素”seven“,并输出添加后的列表
li.append("Seven")
print(li)
c,请在列表的第1个位置插入元素 ”Tony“,并输出添加后的列表
li.insert(0,"Tony")
print(li)
d,请修改列表第2个位置的元素为”Kelly“,并输出修改后的列表
li[1] = "Kelly"
print(li)
e,请删除列表中的元素"eric",并输出修改后的列表
li.remove("eric")
print(li)
f,请删除列表中的第2个元素,并输出删除的元素的值和删除元素后的列表
v = li.pop(1)
print(v,li)
g,请删除列表中的第3个元素,并输出删除元素后的列表
v = li.pop(2)
print(li)
h,请删除列表中的第2至4个元素,并输出删除元素后的列表
li = ["手机","电脑","鼠标垫","游艇","打印机"]
del li[1:4]
print(li)
i,请将所有的元素反转,并输出反转后的列表
li.reverse()
print(li)
j,请使用for,len,range输出列表的索引
for idx in range(len(li)):
print(idx)
k,请使用enumerate输出列表元素和序号(序号从100开始)
for idx,elem in enumerate(li,100):
print(idx,elem)
l,请使用for循环输出列表的所有元素
for item in li:
print(li)
4,写代码,有如下列表,请按照功能要求实现每一个功能
li = ["hello",'seven',["mon",["h","kelly"],'all'],123,446]
a,请根据索引输出"Kelly"
b,请使用索引找到'all'元素并将其修改为”ALL“,如li[0][1][9]
print(li[2][1][1])
li[2][2] = li[2][2].upper()
print(li)
5,写代码,有如下元组,按照要求实现每一个功能
tu = ('alex','eric','rain')
a,计算元组长度并输出
print(len(tu))
b,获取元组的第2个元素,并输出
print(tu[1])
c,获取元组的第1-2个元素,并输出
print(tu[0:2])
d,请使用for输出元组的元素
for item in tu:
print(item
e,请使用for,len,range输出元组的索引
for item in range(len(tu)):
print(item)
f,请使用enumerate输出元组元素和序号(序号从10开始)
for idx,elem in enumerate(tu,10):
print(idx,elem)
6,有如下变量,请实现要求的功能
tu = ("alex",[11,22,{"k1":'v1',"k2":["age","name"],"k3":(11,22,33)},44])
a,讲述元组的特性
# 一级元素不能增,删,改
b,请问tu变量中的第一个元素”alex“是否可以被修改
# 不能
c,请问tu变量中的”k2“对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素"Seven"
# 列表,可以被修改
tu[1][2]["k2"].append("Seven")
print(tu)
d,请问tu变量中的”k3“对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素"Seven"
# 元组,不能修改
7,字典
dic = {'k1':"v1","k2":"v2","k3":[11,22,33]}
a,请循环输出所有的key
for item in dic:
print(item)
b,请循环输出所有的value
for item in dic.values():
print(item)
c,请循环输出所有的key和value
for k,v in dic.items():
print(k,v)
d,请在字典中添加一个键值对,"k4":"v4",输出添加后的字典
dic.update({"k4":"v4"})
print(dic)
e,请在修改字典中“k1”对应的值为“alex”,输出修改后的字典
dic.update({"k1":"alex"})
print(dic)
f,请在k3对应的值中追加一个元素44,输出修改后的字典
dic["k3"].append(44)
print(dic)
g,请在k3对应的值的第1个位置插入个元素18,输出修改后的字典
dic["k3"].insert(0,18)
print(dic)
8,转换
a,将字符串 s = "alex" 转换成列表
s = "alex"
li = list(s)
print(li)
b,将字符串 s = ”alex“ 转换成元组
s = " alex"
tu = tuple(s)
print(tu)
c,将列表li = ["alex","seven"] 转换成元组
li = ["alex","seven"]
tu = tuple(li)
print(tu)
d,将元组tu = ['Alex',"seven"]转换成列表
tu = ['Alex',"seven"]
li = list(tu)
print(li)
e,将列表 li = ["alex","seven"]转换成字典且字典的key按照10开始向后递增
dic = {}
li = ["alex","seven"]
for idx,item in enumerate(li,10):
dic.update({idx:item})
print(dic)
9,元素分类
有如下集合[11,22,33,44,55,66,77,88,99,90],将所有大于66的值保存至字典的第一个key中,将小于66的值保存至第二个key的值中。即:{'K1':大于66的所有的值,'k2':小于66的所有的值}
li = [11,22,33,44,55,66,77,88,99,90]
d66 = []
x66 = []
dic ={}
for item in li:
if item > 66:
d66.append(item)
dic.update({"k1":d66})
elif item < 66:
x66.append(item)
dic.update({"k2":x66})
else:
continue
print(dic)
10,输出商品列表,用户输入序号,显示用户选中的商品
商品 li = ["手机","电脑","鼠标垫","游艇"]
a,允许用户添加商品
b,用户输入序号显示内容
while True:
content = input("请输入:")
if int(content) < len(li):
print(li[int(content)])
else:#如果大于列表的最大索引则添加内容
add_cont = input("添加内容:")
li.append(add_cont)
print(li)
11,用户交互显示类似省,市,县N级联动的选择
a,允许用户增加内容
b,允许用户选择查看某一个级别内容
12,列举布尔值是False的所有值
None,False,0,"",'',[],(),{}
print(bool(None),bool(False),bool(0),bool(""),bool(''),bool([]),bool(()),bool({}))
13,有两个列表
l1 = [11,22,33]
l2 = [22,33,44]
a,获取内容相同的元素列表
for item in l1:
if item in l2:
print(item)
b,获取l1中有,l2中没有的元素列表
for item in l1:
if item not in l2:
print(item)
c,获取l2中有,l1中没有的元素列表
for item in l2:
if item not in l1:
print(item)
d,获取l1和l2中内容都不同的元素
#b和c答案放到一起
14,利用For循环和range输出
a,For循环从大到小输出 1 - 100
for i in range(100,0,-1):
print(i)
b,For循环从小到大输出 100 - 1
for i in range(1,101):
print(i)
c,While循环从大到小输出 1 - 100
i = 100
while i > 0:
print(i)
i -= 1
d,While循环从小到大输出 100 - 1
i = 1
while i < 101:
print(i)
i += 1
15,购物车
功能要求:
要求用户输入总资产,例如:2000
显示产品列表,让用户根据序号选择商品,加入购物车
购买,如果商品总额大于总资产,提示账户余额不足,否则购买成功。
goods = [
{"name":"电脑","price":1999},
{"name":"鼠标","price":10},
{"name":"游艇","price":20},
{"name":"美女","price":998},
]
real_total = input("请输入最大购买额:")
user_cart =[]
user_add = 0 while True:
print("菜单列表")
for i in range(0,len(goods)):
print(i,goods[i])
user_choose = input("请输入加入购物车数字:")
user_add += goods[int(user_choose)]["price"] if user_add < int(real_total):
user_cart.append(goods[int(user_choose)]["name"])
else:
print("超出最大购买额")
user_add -= goods[int(user_choose)]["price"]
print("购物车里:",user_cart)
16,分页显示内容
a,通过for循环创建301条数据,数据类型不限,如:
alex-1 alex1@live.com pwd1
alex-2 alex2@live.com pwd2
alex-3 alex3@live.com pwd3
b,提示用户 请输入要查看的页码,当用户输入指定的页码,则显示指定数据
注意:
-每页显示10条数据
-用户输入页码是非十进制数字,则提示输入内容格式错误
user_list =[]
for i in range(1,302):
temp = {"name":"alex"+str(i),"email":"alex"+str(i)+"@live.com","pwd":"pwd"+str(i)}
user_list.append(temp)
# print(user_list)
while True:
s = input("请输入页码: ")
s = int(s)
start = (s - 1) * 10
end = s * 10
result = user_list[start:end]
for item in result:
print(item, type(item))
17,有1,2,3,4,5,6,7,8,8个数字,能组成多少个互不相同且无重复数字的两位数?
li = [1,2,3,4,5,6,7,8]
dst =[]
for x in range(0,len(li)):
for y in range(0,len(li)):
if x != y:
dst.append(li[x]*10 + li[y])
print(dst)
18,利用for循环和range输出9×9乘法表
#法1
for x in range(1,10):
s = ""
for y in range(1,x+1):
s = s + str(x*y) + "\t"
print(s.expandtabs(3))
#法2
for i in range(1,10):
for j in range(1,i+1):
print(str(j) + "*" +str(i) + "=" + str(i*j) + "\t",end="")
print("\n",end="") print("alex","haifeng","gangniang",sep='弄',end='')
#print 的分隔符和结尾的使用
19,有以下列表,
nums = [2,7,11,15,1,8,7]
请找到列表中任意两个元素相加能够等于9的元素集合,如[(0,1),(4,5)]
a = []
for x in nums:
for y in nums:
if x + y == 9:
a.append((x,y),)
print(a)
#改成索引
a = []
for x in range(len(nums)):
for y in range(len(nums)):
if nums[x] + nums[y] == 9:
a.append((x,y),)
print(a)
20,用Python开发程序自动计算方案:
公鸡5文钱一只,母鸡3文钱一只,小鸡3只一文钱,用100文钱买100只鸡,其中公鸡,母鸡,小鸡都必须要有,问公鸡,母鸡,小鸡要买多少只刚好凑足100文钱?
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)
【练习】Python第一,二次的更多相关文章
- Python第一模块
一.Python简介 二.Python种类 三.Python环境 windows: 1.需要配置环境变量 2.更新:卸载重装 linux:1.常用命令: 查看默认Python版本 Python -V ...
- Python第一天——入门Python(1)数据定义
数据类型: 什么是数据? 在计算机科学中,数据是指所有能输入到计算机并被计算机程序处理的符号的介质的总称,是用于输入电子计算机进行处理,具有一定意义的数字字母.符号和模拟量等的统称.现在计算机存储和处 ...
- 简学Python第一章__进入PY的世界
#cnblogs_post_body h2 { background: linear-gradient(to bottom, #18c0ff 0%,#0c7eff 100%); color: #fff ...
- Python 基础 二
Python 基础 二 今天对昨天学习的Python基础知识进行总结,学而不思则惘,思而不学则殆! 一.先对昨天学习的三大循环的使用情况进行总结: 1.while循环的本质就是让计算机在满足某一条件的 ...
- 初学Python(二)——数组
初学Python(二)——数组 初学Python,主要整理一些学习到的知识点,这次是数组. # -*- coding:utf-8 -*- list = [2.0,3.0,4.0] #计算list长度 ...
- Python - 模块(二)
目录 Python - 模块(二) re re下面的方法 logging os Python - 模块(二) re re模块提供了正则表达式的相关操作 主要字符介绍: . 通配符,除了换行符之外的任意 ...
- Python第一周基本语句学习整理
目录 Python第一周基本语句学习整理 一.字符串切割 二.体重单位转换 三.计算器的实现 四.猜年龄游戏 Python第一周基本语句学习整理 一.字符串切割 代码实现: s = 'luowenxi ...
- Python创建二维列表的正确姿势
Python创建二维列表的正确姿势 简介 Python中没有数组,使用list结构代替,并且list结构的功能更加强大: 支持动态扩容,无需担心元素过量 对list内的元素类型不做一致性约束 提供丰富 ...
- python第一站
python 第一站,豆瓣-美国末日评论小爬虫 最近学习python,但是光是看书看视频学习,总是觉得掌握的不够扎实.所以就决定自己去写写爬虫,当带着目的性去学,也许更容易发现自己需要什么.这是酝酿多 ...
- Python第一天 安装 shell 文件
Python第一天 安装 shell 文件 python里面一切都是对象 object 代码缩进:建议用四个空格来缩进,不要用tab键 安装 Linux自带python,windows需要下载m ...
随机推荐
- eclipse项目上传服务器注意事项
1.先准备服务器环境 2 数据库导入,tomcat安装 3 开放服务器端口,配置网络 4.修改本地代码修改为发布版本,即ip,账号密码数据库等 5 变动的信息应该写在配置文件或者一个全局产量中,这样才 ...
- DOM知识点总结
今天简单整理了一下js三部曲之DOM部分的内容,二话不说先上笔记: 1.什么是DOM? Document Object Model,即文档对象模型,它是让JavaScript能够操作html和xml的 ...
- python 开发接口(一)
一.首先导入模块 pip install flask 二 1 import flas 2 import json import flask #1.启动一个服务 #2.接收到客户端传过来的数据 #3. ...
- Windows中的备份和还原
1:增量备份 (查看文件属性,只备打了勾的,备完后把勾取消掉,修改后勾都会打上) 2:差异备份(备份有勾的 ,备份完后不会取消勾) 周一:备一 周二:备二 周三:备三 周四:备三,四
- New Journey--工作五年所思所感小记
正式参加工作满五年了,2013年7月9日走入游戏行业.之前就计划着应该提笔写点什么留下来,但当日子真的到了,竟是不知说些什么了.14年年中的时候我曾写过一篇工作一年的总结,现在回头读起来,还真是别有一 ...
- jquery---筛选总结
jQuery中筛选这块内容较多,就简单的说明一下说用方法和能有什么样效果,就不弄案例来说明了: 第一类:过滤 1.eq(index|-index) $("p").eq(1).css ...
- vector用法
转:http://www.cnblogs.com/wang7/archive/2012/04/27/2474138.html 在c++中,vector是一个十分有用的容器,下面对这个容器做一下总结. ...
- Java——对象的复制、克隆、序列化
原创作者: https://blog.csdn.net/lmb55/article/details/78277878对象克隆(复制)假如说你想复制一个简单变量.很简单: int apples = 5; ...
- [论文阅读]Object detection at 200 Frames Per Second
本文提出了一个有效且快速的目标检测器,该目标检测器得速度可以达到200+fps,在Pascal VOC-2007上的mAP比Tiny-Yolo-v2高出14. 本文从以下三个方面对网络进行改进. 网络 ...
- js长整型的失真问题解决
遇到的问题: 后端返回的订单号是整型的,超过了Math.pow(2,53) = 9007199254740992,导致获取的数据失真. 类似问题:https://www.zhihu.com/quest ...