【练习】Python第一,二次

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='66')

#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第一,二次 的全部内容, 来源链接: utcz.com/z/389481.html

回到顶部