Python-回顾知识点-分析练习题

1、编码
ascii -8
unicode -16,32
utf-8 -8 ~ 32
gbk -16
2、条件语句
if 条件:
pass
elif 条件:
pass
else:
pass
3、变量
name = "xxx"
1、可以数字,字母,下划线之间任意组合
2、不能是数字开头
3、不能使用Python里的内部关键字
4、不要使用Python中已经使用的变量:list,str,tuole,dict,bool,int
5、建议:见名之意
4、字符串格式化
"aad%s,111%d" % ("xxx",6)
5、运算符
- 除法(oy27中 9/2 = 4,py35中 9/2 = 4.5)
- 字符串可以相乘,相加
- += 自加 -=自减
-or and 顺序
-in
dic = {
"k1": "v1"
"k2": "v2"
}

li = [11,22,33,44]
#1.列表,查看是否存在其中
if 11 in li:
pass
#2.字典,查看key是否在其中
"k1" in dic
for item in dic:
print(item)
for k in dic.keys():
print(k)
if "k1" in dic:
pass
3.字典,,查看value是否在其中
查看是否在存在, vi in dic.values():
4.字典,查看value是否在其中
循环实现,检查"v1"是否在字典dic = {'k1': 'v1','k2': 'v2'}的值中

val = "v1"
result = False
for item in dic.values():
    if item == val:
        result = True
        break
print(result

6.数据类型
int - 整数
-最少用多少二进制位表示(bit_length())
字符串:
-大小写
-首字母大写
-分割
a,b = split("*",1)
-去除空白
-替换
-"xxx".join(["11","22"])
-是否是十进制数
列表:
-追加
-插入
-反转
-长度
-for循环
-删除:del li[0]
li[0:3:1]
-嵌套:
[
1, [22,33]
"asda"
]
补充:

1. 索引为奇数值,删除
# 删除列表元素时,会影响列表长度,从而使得索引取值时,容易出现错误。
li = [11,22,33,44,66]

li = [11, 22, 33, 44, 66] # 0
# 索引为奇数值,删除
for i in range(0,len(li)): # 4,0
del li[i]
print(li)

# 解决方案一:
# li = [11, 22, 33, 44, 66] # 0
# new_list = []
# # 索引为奇数值,删除
# for i in range(0,len(li)):
# if i%2 == 0:
# new_list.append(li[i])
# li = new_list
# print(li)

# 解决方案二:
# li = [11, 22, 33, 44, 66] # 0
# # 索引为奇数值,删除
# for i in range(len(li)-1,-1,-1): # 4,0
# if i%2 == 1:
# del li[i]
# print(li)
2.切片 + 步长

li = [11, 22, 33, 44, 66] 
 li[0:4]
 del li[0:4:2]
 print(li)

tuple-元祖
-元素,不可变
-只有一个元素时,一定加逗号
# val = (1,2,3,4,555,6)
# print(val,type(val))

# val = (1)
# print(val,type(val))

# val = (1,)
# print(val,type(val))

字典-dict
dic = {'k1':"v1",'k2':'v2'}
data = dic.get('kk1') # None

len
dict['k1'] = "vv1"
for
val = "v1" in dic # False

# 出错点
# 题:dic = {'k1':"v1",'k2':'v2'}把key="k1",键值对删除
# del dic['k1']

# 题:dic = {'u1':"v1",'k2':'v2','k3':'v3'}把key中存在k,键值对删除

dic = {'u1':"v1",'k2':'v2','k3':'v3'}
# 不要在循环当前字典的过程中,修改当前字典大小

# 错误
# for key in dic:
# if 'k' in key:
# del dic[key]

# 正确方式 

dic_key_list = []
for key in dic:
    dic_key_list.append(key)

for row in dic_key_list:
    if 'k' in row:
        del dic[row]
print(dic)

字符串和布尔值相互转换
v = "123"
val = int(v)

v = 123
val = str(v)

list
v = (1,2,3,)
val = list(v)
# val = []
# for item in v:
# val.append(item)
tuple
v = [11,22,33,44]
val = tuple(v)
布尔值-True,False
False:0,None,"",{},[],()

7. for和while
continue
break

for i in range(1,10):
print(i)
for i in range(10,20):
    print(i)
        
for i in range(1,10):
    print(i)
    break
    for i in range(10,20):
        print(i)
        
for i in range(1,10):
    print(i)
    for i in range(10,20):
        print(i)
    break

for i in range(1,10):
    print(i)
    for i in range(10,20):
        print(i)
        break
    break
    
for i in range(1,10):
    print(i)
    for i in range(10,20):
        print(i)
        break
        
flag = False
for i in range(1,10):
    print(i)
    if flag:
        break
    for i in range(10,20):
        print(i)
        flag = True
        break
        
==================
for i in range(1,10):
    print(i)
    continue
    for i in range(10,20):
        print(i)
        
for i in range(1,10):
    print(i)
    for i in range(10,20):
        continue
        print(i)
===================
for i in range(1,10):
    print(i) # 1,2
    for j in range(i,10): # 2,9
        print(j)
    


for i in range(1,10):
    print(i) 
    for j in range(10,i,-1): 
        print(j)

练习题讲解:

12.请用代码实现:
li = [‘alex’,’eric’,’rain]
利用下划线将列表的每一个元素拼接成字符串"alex_eric_rain"

li = ['eric','alex','rain']
v = "_".join(li)
print(v)

13.实现一个整数加法计算器:
如:
content =input('请输入内容:')# 如用户输入: 5+9或 5+ 9或 5 + 9,然后进行分割再进行计算

content = input('>>>') # 5+9
a,b = content.split('+')
a = int(a)
b = int(b)
print(a+b

14.计算用户输入的内容中有几个整数?
如:
content =input('请输入内容:') #如:asduiaf878123jkjsfd-213928

content = input('>>>') # sdfsdf123sdf123
val = 0
for count in content:
    if count.isdecimal():
        val += 1

18.扩展题
# 如果用户输入的内容中存在任意关键字,则提示用户重新输入
# 否则,打印结束
li = ['东京热','苍老师','日本']

while True:
    has_key = False
    content = input('>>>>') # 我叫
    # 循环所有关键字,查看是否内容中存在?
    for k in li:
        if k in content:
            print('请重新输入')
            has_key = True
            break
    if has_key == False:
        break    

27.有两个列表
#l1 =[11,22,33]
#l2 =[22,33,44]

li = [11,22,33,44,55,66,77,88,99]
dic = {'k1':[],'k2':[]}
for item in li:
    if item > 66:
        dic.get('k1').append(item)
        # dic['k1'].append(item)
    elif item < 66:
        dic.get('k2').append(item)
                        
li = [11,22,33,44,55,66,77,88,99]
dic = {}
# dic = {'k1':[11,]}
# dic = {'k1':[11,22,33,44,55],'k2': [77,88,99]}

for item in li:
    if item <66:
        # 11,22,33,44,55
        if 'k1' not in dic:
            dic['k1'] = [item,]
        else:
            dic['k1'].append(item)
    elif item > 66:
        if 'k2' not in dic:
            dic['k2'] = [item,]
        else:
            dic['k2'].append(item)

print(dic)

 

posted @ 2017-08-22 18:21  程先生_Python  阅读(171)  评论(0编辑  收藏  举报