Python Day4-5

一 join方法

 主要是做字符串的拼接:join后面跟的类型必须是要可迭代得到对象

  for循环的对象是可迭代对象


str = "-";
seq = ("a", "b", "c"); # 字符串序列
print str.join( seq );
输出结果:
a-b-c

 

 

二 break  和 contionue在for循环中也可以使用,用法和while循环一样

  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)

三 各种数据类型外部,都不能加上逗号,不然都会变成元组的类型,带上逗号不能在值外部得首位,不然就会报错。

# a=1,
# print(a,type(a))
 
 
 
# a='fang',
# print(a,type(a))
 
 
# a=1,2,3,4,5,
# print(a,type(a))
#
 
 
# b='wa','sa',
# print(b,type(b))
 
 
 
# c=[1,2],[2,4]
# print(c,type(c))
#
 
 
# d={'fang':18},{'jie':19}
# print(d,type(d))

四 python2 和python3中range的区别

 在python2 中range是直接在内存中直接就会产生数据,所以浪费内存,但是为了节省内存,python2中的xrange就会比较好一点,xrange是不会直接产生数据的,而是在你调用的时候才会产生数据,属于未知的类型(生成器),而且还会判断数据产生后得到一段时间假如没有被调用,就会自动的删除。

 而在python3 中,将range优化,与python2中的xrange功能是一样的。

# py35
# range() = py27 xrange()
# 应用
# for num in range(1,101):
#     if num == 77:
#         continue
#     print(num)
# 2. 步长(默认1)
# for num in range(1,101,1):
#     print(num)
 
# for num in range(100,0,-1):
#     print(num)
# 应用
# li = [11,22,33,44,55,66]
# for num in range(0,len(li)):
#     print(num)

五 预备知识

 只要代码执行放在内存,就可以直接调用

 

# if 1 == 1:
#     name = '123'
# print(name) # 123
 
# if 1!=1:
#     name = '123'
# print(name) # None

 

如果变量未创建(未定义)就会报错

六 占位符还可以赋值变量使用

 

pl = "我叫%sfdf"
name = tpl %('骑兵',)
name = tpl %('步兵',)

 

 七 判断某个值是否与字典内的某个值相同

# d={
#     'k1':'v11',
#     'k2':'v2'
# }
 
# val='v1'
# for i in d.values():
#     if val == i:
#         print(val)

练习:

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)

八 删除列表时会影响列表的长度,从而使取得索引只有影响

 练习:删除列表基数索引所对应的值

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]
        del li[0:4]
        del li[0:4:2]
        print(li)

 九 数据类型之间的转换

   1 数字和字符串的转换

#数字转成字符串
# a=123
# a=str(a)
# print(a,type(a))
#
# #字符串转换成数字
# a='234'
# a=int(a)
# print(a,type(a))

   2 列表和元祖的转换

 

## 列表转换元组
# a=['as','afs']
# a=tuple(a)
# print(a,type(a))
 
# #元组转换成列表
# a=('sa','gdf')
# a=list(a)
# print(a,type(a))

 

 3 字符串和列表,还有元组的转换

 

##字符串转换成列表
# a='fsfsaasaa'
# a=list(a)
# print(a,type(a))
 
##字符串转换成
# a='fsfsaasaa'
# a=tuple(a)
# print(a,type(a))
 
####注释:在字符串转换成列表或者元祖时,会以索引取值,从第一个到最后一个,每取一个索引值,就会成为列表或者元组里面的元素。
 
 
 
##列表转换字符串
# a=['sd','adf']
# a=str(a)
# print(a,type(a))
# ##元组转换字符串
# a=('sd','adf')
# a=str(a)
# print(a,type(a))
 
# ####注释:在列表或者元祖转换字符串的时候,会将列表或者元组的整体转换成字符串
 
 
 
 
# a=['sd','adf']
# print(''.join(a),type(''.join(a)))
# ##join的转换方法:列表转换字符串
# a=('sd','adf')
# print(''.join(a),type(''.join(a)))
# ##join的转换方法:元组转换字符串

 

十 每个数据相对应的布尔值

- True,False
 
- False: 0,None,"",{},[],()

 

之前的小总结:

   

3. 编码
ascii - 8
unicode - 16,32
utf-8 - 8 ~ 32
gbk - 16

4. 字符串格式化
- "asdf%s,sdfsdf%d" %('11',4)
- "asdf%s,sdfsdf" %'11'
- "asdf%s,sdfsdf%%" %'11'
-
tpl = "我叫%sfdf"
name = tpl %('骑兵',)
name = tpl %('步兵',)
5. 变量
name = 'xxx'

不要使用python中已经使用的变量:list,str,tuple,dict,bool,int

6. 条件语句
if xxx:
pass
elif xxxx:
pass
else:
pass
7. 长度
len(xxxx)

8. 索引操作:
str:
v = "xxxx"
v[0]
tuple:

list

dict:

9. 运算符
- 除法
- 字符串相乘
- += -+
- 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是否在其中
查看v是否存在,v1 in dic.values():

# 4. 字典,查看value是否在其中
循环实现,检查“v1”是否在字典 dic = {'k1': 'v1','k2': 'v2'} 的值中。
val = "v1"
# for val in dic:
# for val in dic.values():
# for v in dic.values():
# if val in v:
# print(True)
# 龙哥,老狗,成绩,海角

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

print(result)



10. py2,py3
-
raw_input()
input()
-
range()
xrange()

range()
-
ascii(#-*-encoding:utf-8 -*-)

utf-8

-
print "alex"
print('alex')

11. 字符串
- 大小写
- 首字母大写
- 分割
a,b = split('*',1)
- 去除空白
- 替换
- "xx".join(["11","22",])
- 是否是十进制数

12. 列表
- 追加
- 插入
- 反转

长度
for循环
del li[0]
li[0:3:1]
嵌套:
[
1,
[33,44],
"xxx"
]

补充:

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]
del li[0:4]
del li[0:4:2]
print(li)


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

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

# val = (1,)
# print(val,type(val))
13. 字典
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)

14. int
- 最少用多少二进制位表示

15. 字符串和布尔值相互转换
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)


v = "礼券"
val = ["礼","券"]

16. 布尔值
- True,False

- False: 0,None,"",{},[],()

17. 高盛月
字符串功能
for循环
while循环
if else
字典

 

 

 

 

 




 

 

 

 

 

 

 

 

 

 

 

posted @ 2017-08-22 20:02  大象和骆驼  阅读(224)  评论(0编辑  收藏  举报