练习题

1,简述变量命名规范

1.必须是字母,数字,下划线的任意组合;
2.不能是数字开头;
3.不能是python中的关键字;
4.变量不能是中文;
5.变量不能过长;
6.变量要具有可描述性;

2,字节和位的关系。

8位等于1个字节

3,’A太白’使用utf-8编码时,占的位数和字节数,是多少?使用gbk编码时,占的位数
和字节数,是多少。

utf- (一个中文代表3个字节)    字节:*=        位数:*=
gbk (一个中文代表2个字节) 字节:*= 位数:*=

4,默写字符串的十二个功能,并描述其作用。

capitalize: 首字母大写其余字母小写
swapcase: 大小写翻转
title: 非字母隔开的每个单词的首字母大写
center: 设置总长度,并居中
upper(): 全大写
lower(): 全小写
startswith: 检测字符串是否是由相同的开头,返回True或False
endswith: 检测字符串是否是由相同的结尾,返回True或False
strip: 默认去除字符串前后的空格,换行符,制表符
lstrip(): 默认只去除左边的空格
rstrip(): 默认只去除右边的空格
replace: 字符串替换
split: 分隔,str ---> list
join: 分割,list---> str
find: 通过元素找索引,找不到返回-
index: 通过元素找索引,找不到会报错
len: 测量个数
count: (数)(方法统计某个元素在列表中出现的次数)
format: 格式化输出
isalnum: 检验字符串是否由字母和数字组成
isalpha: 检测字符串是否只由字母组成
isdigit: 检测字符串是否只由数字组成
sort(): 正序排序列表中的元素
sort(): 倒叙排序列表中的元素
reverse(): 翻转列表中的元素

5,Python中的常量是什么?如何表示?通常放在文件的哪里?

用全部大写的字符串表示,通常放在文件的开头。

6,Python中的单行注释和多行注释分别是什么?

单行注释 #  和多行注释 '''   '''

7,Python中input输入的是什么数据类型?

字符串。

8,书写Python2与python3中的三个不同。

python2X: 源码不规范,源码混乱,重复代码多。
python3X: 重整源码,源码规范,优美,清晰,简单
python2x: 默认的编码方式ascii,
显示中文:首行: # -*- edcoding:utf- -*-
python3x: 默认的编码方式 utf -
python2x: print '内容' 或者 print('内容')
python3x: print('内容')
print () 打印内容用小括号括起来
raw_input 与 input 合并为input
print语句被python3废弃,统一使用print函数
exec语句被python3废弃,统一使用exec函数
execfile语句被Python3废弃,推荐使用exec(open("./filename").read())
不相等操作符"<>"被Python3废弃,统一使用"!="
long整数类型被Python3废弃,统一使用int
python2X: 源码不规范,源码混乱,重复代码多。

9,写代码,有如下列表,利用切片实现每一个功能。

l1 = ['a', 'b', 'c', 'WuSir', 'TaiBai', '老男孩']

)通过对li列表的切片形成新的列表l2,l2 = [‘a’,’c’,'TaiBai']
l2=l1[::] )通过对li列表的切片形成新的列表l3,l3 = [‘a’,’WuSir’]
l3=l1[::]
print(l3,type(l3)) )通过对li列表的切片形成新的列表l4,l4 = [‘老男孩’]?
del l1[:-]
print(l1) )通过对li列表的切片形成新的列表l5,l5 = ['TaiBai', 'c','a']
l5=l1[-::-]
print(l5)

10,组合嵌套题。

a,写代码,有如下列表,按照要求实现每一个功能

lis = [['k', 'qwe', 20, {'k1': ['tt', 3, '1']}, 89, 'ab']]

)将列表lis中的’tt’变成大写(用两种方式)。
lis[][]['k1'][]='TT'
lis[][]['k1'][]=lis[][]['k1'][].upper()
print(lis)
)将列表中的数字3变成字符串’’(用两种方式)。
lis[][]['k1'][]=''
lis[][]['k1'][]=str(lis[][]['k1'][]+)
print(lis)
)将列表中的字符串’’变成数字101(用两种方式)。
lis[][]['k1'][]=
lis[][]['k1'][]=int(lis[][]['k1'][]+'')
lis[][]['k1'][]=int(lis[][]['k1'][])+
print(lis)
b,写代码,有如下字典,按照要求实现每一个功能
dic = {'k1': 'v1','k2': ['alex','sb'],(1,2,3,): {'k3': ['2', 100, 'TaiBai']}}
1)将’k2’对应的值的最后面的’sb’删除。
dic['k2'].remove('sb')#同一个字典内部通过键去找字典的内容,列表是索引
print(dic)
2)将’k2’对应的值的第二个位置插入一个元素 ’老男孩’。
dic['k2'].insert(1,'老男孩')
print(dic)
3)将(1,2,3,)对应的值添加一个键值对(1,2,3),’ok’。
dic[(1,2,3,)]['(1,2,3)']='ok'
print(dic)
4)将’k3’对应的列表的最后追加’a’,’b’,’c’,’d’四个元素。
dic[(1,2,3,)]['k3'].extend('abcd')
print(dic)
5)将'TaiBai'改成男神。
dic[(1,2,3,)]['k3'][2]='男神'
print(dic)

11,转化题。

Int与str之间如何转化,转换的结果是什么?有没有条件?

int可以转换为str
str可以转换为int 条件是str内容全部为整数
Int 与 bool之间如何转化,转换的结果是什么?有没有条件?
int-->bool 0是False,其他是True
bool-->int True是1 False是0
str 与 bool之间如何转化,转换的结果是什么?有没有条件?
str -->bool 空字符串是False,其他是True
bool --> str True是1 False是0
str 与 list 能否转化?如何转化?
能,用split()

12,实现下列结果。

1)有列表li = ['老男孩', 'alex', 'WuSir', 'TaiBai']
通过一行代码构造一个字符串s=’老男孩**alex**WuSir**TaiBai’
li = ['老男孩', 'alex', 'WuSir', 'TaiBai']
'**'.join(li)
print('**'.join(li))
2)有字符串s ='alex WuSir TaiBai',通过一行代码构造一个列表li = [ 'alex', 'WuSir', 'TaiBai']
s ='alex WuSir TaiBai'
li=s.split()
print(li)
3)有字符串s = ‘alex’通过操作该字符串构造一个字符串s1 = ‘a_l_e_x’
s = 'alex'
s1 ='_'.join(s)
print(s1)

13,分别使用while循环,和for循环打印1-2+3-4+5.......+99的结果。

for循环

sum=
for i in range():
if i % == :
sum+=i
else:
sum-=i
print(sum)
while循环
"""
给start赋值为1,sum赋值为0,当start的赋值小于100的时候while循环为真
temp的赋值等于start和2的余数,如果temp的赋值等于1,sum的赋值就等于
sum加start的赋值(余数为1,start就是奇数),否则sum的赋值就等于sum减start的
赋值(余数不为1就为0,start就是偶数),start重新赋值
等于start加1,一直加到start的赋值等于99,while循环为假!打印sum
""" start =
sum =
while start <:
temp = start %
if temp ==:
sum = sum + start
else:
sum = sum - start
#print(start)
#sum = sum +
start +=
print(sum)

14.使用range打印100,98,96,94....6,4,2,0

for i in range(100,-1,-2):
print(i)

15,有如下列表:li = ['老男孩', 'WuSir', 'alex', 'TaiBai'],写代码,通过代码构造成一个新列表l2

l2= ['老男孩SB', 'WuSirNB', 'alexSB', 'TaiBaiNB']

li = ['老男孩', 'WuSir', 'alex', 'TaiBai']
l2=[]
for i in li:
if li.index(i) % 2 == 1:
i=i+'NB'
else:
i=i+'SB'
l2.append(i)
print(l2) anser
li = ['老男孩', 'WuSir', 'alex', 'TaiBai']
for index in range(len(li)):
# print(index)
if index % 2 == 0:
li[index] = li[index] +'SB'
else:
li[index] = li[index] + 'NB'
print(li)

16,编写程序,统计如下各个字符串个数。

如有此字符串str1 = "hello world god is allways busy",最后得到的结果为:‘h:1,e:1,l:5,o:3,w:2,r:1,d:2,g:1,i:1,s:3,a:2,y:2,b:1,u:1,’

anser
str1 = "hello world god is allways busy"
# l1=str1.split()
# print(l1)
# s=''.join(l1)
# print(s) s1 = ''.join(str1.split()) # ["hello","world"......]
print(s1) # helloworldgodisallwaysbusy
result = ""
for i in s1:
if i not in result:
result = result + i + ':' + str(s1.count(i)) + ',' # '' + h + : + 1 + ,#字符串的相加
# 'h:1,' + e + : + 1 + ,
print(result)

17,元素分类

将一个列表的元素,分类后分别放到两个列表中
  有如下值集合 [,,,,,,,,,],将所有大于 的值保存至一个列表,小于等于66的值保存到另一个列表
#!/usr/bin/env python
# -*- coding:utf- -*-
print("将一个列表的元素,分类后分别放到两个列表中")
a = [,,,,,,,,,]
b = [] #创建空列表b
c = [] #创建空列表c
for i in a: #循环a列表元素
if i <= :
b.append(i) #判断循环到的元素小于或等于66的,追加到b列表
else:
c.append(i) #判断循环到的元素大于66的,追加到c列表
#分别打印出b列表和c列表
print(b)
print(c)
#打印出
#[, , , , , ]
#[, , , ]
将一个列表的元素,分类后分别放到一个字典中,列1
  有如下值集合 [,,,,,,,,,],将所有大于 的值保存至字典的k1键值,小于等于66的值保存至字典的k2键值。
#!/usr/bin/env python
# -*- coding:utf- -*-
print("将一个列表的元素,分类后分别放到一个字典中,列1")
a = [,,,,,,,,,]
b = [] #创建空列表b
c = [] #创建空列表c
for i in a: #循环a列表元素
if i <= :
b.append(i) #判断循环到的元素小于或等于66的,追加到b列表
else:
c.append(i) #判断循环到的元素大于66的,追加到c列表
d = {"k1":b, "k2":c} #新创建一个字典,键为k1和k2,把b列表赋值给k1键,把c列表赋值给k2键
print(d)#打印出d字典
#打印出 {'k2': [, , , ], 'k1': [, , , , , ]}
将一个列表的元素,分类后分别放到一个字典中,列2
  有如下值集合 [,,,,,,,,,],将所有大于 的值保存至字典的k1键值,小于等于66的值保存至字典的k2键值。
#!/usr/bin/env python
# -*- coding:utf- -*-
print("将一个列表的元素,分类后分别放到一个字典中,列2")
a = [,,,,,,,,,]
b = {"k1":[], "k2":[]}
for i in a: #循环a列表元素
if i <= :
b["k1"].append(i) #判断循环到的元素小于或等于66的,追加到b列表
else:
b["k2"].append(i) #判断循环到的元素大于66的,追加到c列表
print(b)
#打印出 {'k2': [, , , ], 'k1': [, , , , , ]}

18,元素查找

 查找列表,元组,字典,中元素,移除每个元素的空格,并查找以 a或A开头 并且以 c 结尾的所有元素。

  li = ["alec", " aric", "Alex", "Tony", "rain"]
    tu = ("alec", " aric", "Alex", "Tony", "rain") 
    dic = {'k1': "alex", 'k2': ' aric',  "k3": "Alex", "k4": "Tony"}
1,查找列表中元素,移除每个元素的空格,并查找以 a或A开头 并且以 c 结尾的所有元素。
  li = ["alec", " aric", "Alex", "Tony", "rain"]
#!/usr/bin/env python
# -*- coding:utf- -*-
print("查找列表中元素,移除每个元素的空格,并查找以 a或A开头 并且以 c 结尾的所有元素。")
li = ["aleb", " aric", "Alex", "Tony", "rain"]
for i in li:
b = i.strip() #移除循环到数据的两边空格
#判断b变量里以a或者A开头,并且以c结尾的元素
#注意:如果一个条件语句里,or(或者),and(并且),都在条件判断里,将前面or部分用括号包起来,当做一个整体,
#不然判断到前面or部分符合了条件,就不会判断and后面的了,括起来后不管前面符不符合条件,后面的and都要判断的
if (b.startswith("a") or b.startswith("A")) and b.endswith("c"):
print(b) #打印出判断到的元素
#打印出
#aric
2,查找元组中元素,移除每个元素的空格,并查找以 a或A开头 并且以 c 结尾的所有元素。
  tu = ("aleb", " aric", "Alex", "Tony", "rain")
#!/usr/bin/env python
# -*- coding:utf- -*-
print("查找元组中元素,移除每个元素的空格,并查找以 a或A开头 并且以 c 结尾的所有元素。")
tu = ("aleb", " aric", "Alex", "Tony", "rain")
for i in tu:
tu1 = i.strip() #移除循环到数据的两边空格
#判断tu1变量里以a或者A开头,并且以c结尾的元素
#注意:如果一个条件语句里,or(或者),and(并且),都在条件判断里,将前面or部分用括号包起来,当做一个整体,
#不然判断到前面or部分符合了条件,就不会判断and后面的了,括起来后不管前面符不符合条件,后面的and都要判断的
if (tu1.startswith("a") or tu1.startswith("A")) and tu1.endswith("c"):
print(tu1) #打印出判断到的元素
#打印出
#aric
3,查找字典中元素,移除每个元素的空格,并查找以 a或A开头 并且以 c 结尾的所有元素。
  dic = {'k1': "alex", 'k2': ' aric',  "k3": "Alex", "k4": "Tony"}
print("查找字典中元素,移除每个元素的空格,并查找以 a或A开头 并且以 c 结尾的所有元素。")
dic = {'k1': "aleb", 'k2': ' aric', "k3": "Alex", "k4": "Tony"}
for i in dic:
dic1 = dic[i].strip() #移除循环到数据的两边空格
#判断dic1变量里以a或者A开头,并且以c结尾的元素
#注意:如果一个条件语句里,or(或者),and(并且),都在条件判断里,将前面or部分用括号包起来,当做一个整体,
#不然判断到前面or部分符合了条件,就不会判断and后面的了,括起来后不管前面符不符合条件,后面的and都要判断的
if (dic1.startswith("a") or dic1.startswith("A")) and dic1.endswith("c"):
print(dic1) #打印出判断到的元素
#打印出
#aric

19,实现一个整数加法计算器:

如:content = input(‘请输入内容:’) # 如用户输入:5+8+7....(最少输入两个数相加),然后进行分割再进行计算,将最后的计算结果添加到此字典中(替换None):dic={‘最终计算结果’:None}。content = input('请输入你的内容:').strip()

con = content.split('+')
sum = 0
for i in con:
i=i.strip()
i=int(i)
sum=sum+i
print(sum) anser
dic={‘最终计算结果’:None}。
content = input('输入内容:').strip()
li = content.split('+')
dic = {'最终结果': None}
sum = 0
for i in li:
sum += int(i)
dic['最终结果'] = sum
print(dic)

20,按要求完成下列转化(如果给list3再添加多个类似的字典如{"name": "太白", "hobby": "sport"})。

list3 = [
{"name": "alex", "hobby": "抽烟"},
{"name": "alex", "hobby": "喝酒"},
{"name": "alex", "hobby": "烫头"},
{"name": "alex", "hobby": "Massage"},
{"name": "wusir", "hobby": "喊麦"},
{"name": "wusir", "hobby": "街舞"},
]
# 如何把上面的列表转换成下方的列表?
list4 = [
{"name": "alex", "hobby_list": ["抽烟", "喝酒", "烫头", "Massage"]},
{"name": "wusir", "hobby_list": ["喊麦", "街舞"]},

list3 = [
{"name": "alex", "hobby": "抽烟"},
{"name": "alex", "hobby": "喝酒"},
{"name": "alex", "hobby": "烫头"},
{"name": "alex", "hobby": "Massage"},
{"name": "wusir", "hobby": "喊麦"},
{"name": "wusir", "hobby": "街舞"},
] list4=[]
for i in list3:
for j in list4:
if i['name']==j['name']:
j['hobby_list'].append(i['hobby'],)
break
else:
list4.append({'name':i['name'],'hobby_list':i['hobby']},) print(list4) list3 = [
{"name": "alex", "hobby": "抽烟"},
{"name": "alex", "hobby": "喝酒"},
{"name": "alex", "hobby": "烫头"},
{"name": "alex", "hobby": "Massage"},
{"name": "wusir", "hobby": "喊麦"},
{"name": "wusir", "hobby": "街舞"},
{"name": "wusir", "hobby": "洗头"},
{"name": "太白", "hobby": "街舞"},
] '''
{ 'alex': {"name": "alex", "hobby_list": ["抽烟", "喝酒", "烫头", "Massage"]},
'wusir':{"name": "wusir", "hobby_list": ["喊麦", "街舞"]},
} '''
dic = {
'alex': {"name": "alex", "hobby_list": ["抽烟"]},
'wusir':{"name": "wusir", "hobby_list": ["喊麦", "街舞"]},
}
print(list(dic.values()))
方法一
dic = {}
for i in list3:
if i['name'] not in dic:
dic[i['name']] = {'name':i['name'],'hobby_list':[i['hobby'],]}
else:
dic[i['name']]["hobby_list"].append(i['hobby'])
print(list(dic.values()))
list4 = [
{"name": "alex", "hobby_list": ["抽烟", "喝酒", "烫头", "Massage"]},
{"name": "wusir", "hobby_list": ["喊麦", "街舞"]},
] list4 = []
#list4 = [{"name": "alex", "hobby_list": ["抽烟", ]]
for i in list3:
# {"name": "alex", "hobby": "抽烟"},
# {"name": "alex", "hobby": "喝酒"},
for j in list4: # list4 = [{"name": "alex", "hobby_list": ["抽烟", ]}]
# j = {"name": "alex", "hobby_list": ["抽烟", ]}
if i['name'] == j['name']:
j['hobby_list'].append(i['hobby'],)
break
else:
list4.append({'name':i['name'],'hobby_list':[i['hobby'],]})
print(list4)

21,写程序,模拟公司HR将员工信息录入公司内部系统。

录入的员工信息表为这种数据类型:
user_list = [
{'id':1,
'personal_info':
{'name':'老男孩',
'age':56,
'sex':'男',
'marry_status':'是',
'edu_background':'本科'}
}
]
1,HR选择添加员工信息或者退出。
2,分别将员工的姓名,年龄,性别,婚否,学历这几项依次录入员工信息表中,其中id为自增(id不用HR填写,而是每添加一个员工信息就自动加1,并且id是唯一的)。
3,如果遇到录入员工信息时有相同的姓名,那么就将相同的姓名的员工的名字变成 名字+id(如之前录入了一个名叫张三的员工,之后新员工又有同名的情况也叫张三,那么后面这个张三名字要改成 张三2(此id为他的对应的id))。
4,退出整个程序时,最后要将本次录入的所有的员工姓名依次打印出来。
Ps:

user_list = [
{'id':1,
'personal_info':
{'name':'老男孩',
'age':56,
'sex':'男',
'marry_status':'是',
'edu_background':'本科'}
},
]
l1 = [{'name':'alex'}, 22, 33]
print(len(l1))
while True:
choice = input('是否添加员工信息/Q或q退出:').strip()
if choice.upper() == 'Q':break
name, age, sex, marry_status, edu_background = input('请依次输入姓名,年龄,性别,婚否,学历').strip().replace(',', ',').split(',')
# msg_list = ['太白', '21', '男', '已婚', '本科']
for i in user_list:
if name == i['personal_info']['name']:
name = name + str(len(user_list) + 1)
user_list.append(
{'id': len(user_list) + 1,
'personal_info':
{'name': name,
'age': age,
'sex': sex,
'marry_status': marry_status,
'edu_background': edu_background}
}
) s1 = '太白,21,男,已婚,本科'
s2 = s1.replace(',',',')
print(s2.split(',')) for i in user_list[1:]:
print(i['personal_info']['name'])
												

Python- - -练习目录的更多相关文章

  1. python模块目录文件后续

    1,新增PythonModule加载path Ruiy tip(关于python list[]数据库类型特殊你懂的!append(""),extend([""] ...

  2. Python开发目录

    Python开发目录 Python之三目运算符 Python之文件的基本操作

  3. Python——Django目录说明

    一.Django安装好后,建立djangosite的开发项目 #django-admin startproject djangosite 二.djangosite目录内容 ''' djangosite ...

  4. Python爬虫目录

    Python爬虫目录 工具使用 Pycharm 连接Linux 远程开发 mongodb在windows下安装启动 爬虫抓包工具Fiddle设置 爬虫抓包工具Charles设置 爬虫工具fiddle在 ...

  5. Python并发目录

    Python并发目录 Python-socket网络编程 Python网络编程-IO阻塞与非阻塞及多路复用 Python进程-理论 Python进程-实现 Python进程间通信 Python进程池 ...

  6. 初学Python——软件目录结构规范

    为什么要设计好目录结构? 可读性高: 不熟悉这个项目的代码的人,一眼就能看懂目录结构,知道程序启动脚本是哪个,测试目录在哪儿,配置文件在哪儿等等.从而非常快速的了解这个项目. 可维护性高: 定义好组织 ...

  7. python 项目目录结构

    目录组织方式 关于如何组织一个较好的Python工程目录结构,已经有一些得到了共识的目录结构.在Stackoverflow的这个问题上,能看到大家对Python目录结构的讨论. 这里面说的已经很好了, ...

  8. python 查看目录下所有目录和文件

    python查看目录下所有的子目录和子文件 python递归遍历目录结构 我喜欢第一种 方法1 import json, os def list_dir(path, res): for i in os ...

  9. 三行命令搞定查询Python安装目录

    想为Python添加一个库文件到默认目录,却忘记了Python安装目录. 其实,只要用下面三行命令,就可以轻松得到Python安装路径了. 进入Python >>>import sy ...

  10. Python之目录结构

    Python之目录结构 项目名project_name project_name -|--bin (可执行文件) --|--start.py import os,sys #设置环境变量 BASE_DI ...

随机推荐

  1. python基础(3)-pycharm安装&for循环&format字符串&list列表&set集合使用

    安装IDE(PyCharm)&破解 点击下载安装包,安装. 点击下载破解补丁. 进入pycharm安装bin目录,将破解补丁copy到当前目录. 在bin目录下找到pycharm.exe.vm ...

  2. 在ABP中使用linq

    private IQueryable<MembershipEntity> SelectOrScrrenMember(GetMemberInput input) { string[] use ...

  3. 灵雀云率先成为 Linux 基金会/CNCF官方认证培训合作伙伴

    近日,灵雀云Alauda成为Linux基金会/CNCF授权培训伙伴项目( Linux Foundation Authorized Training Partner Program,以下简称ATP)在国 ...

  4. linux终端使用ss代理

    title: linux终端使用ss代理 date: 2017-11-09 21:06:16 tags: linux categories: linux 系统为archlinux 先将ss代理转化为h ...

  5. FAT32文件系统学习(上)

    2011-06-02 22:30:48 目的:需要编写SD读图片的底层驱动程序.所以要了解一个SD卡常用文件系统基本概念.累计学习用时2.5小时. 一,FAT32的保留区 1,引导扇区 :引导扇区是F ...

  6. 和 (DFS)

    和 Time Limit: 1000MS Memory Limit: 65536KB Total Submissions: 177 Accepted: 93 Share Description:   ...

  7. 分配swap分区

    1.free命令 用来查看swap分区的使用情况[root@localhost ~]#free#查看内存与swap分区使用状况◆cached(缓存):是指把读取出来的数据保存在内存当中,当再次 读取时 ...

  8. Redis学习-sorted set数据类型

    sorted set 是有序集合,它在 set 的基础上增加了一个顺序属性,这一属性在添加修 改元素的时候可以指定,每次指定后,会自动重新按新的值调整顺序. zadd key score member ...

  9. JavaScript eval

    JavaScript  eval JavaScript中的eval是Python中eval和exec的合集,既可以编译代码也可以获取返回值. // EvalError 执行字符串中的JavaScrip ...

  10. rangeOfString 和 containsString 兼容iOS7处理

    //查找字符串是否包含"心" NSString *str = @"每天都有好心情"; if ([str containsString:@"心" ...