随便记记

#!/usr/bin/python
# -*- coding: utf-8 -*-


# msg_dic={
# 'apple':10,
# 'tesla':100000,
# 'mac':3000,
# 'lenovo':30000,
# 'chicken':10,
# }
#
# goods=[]
# while True:
# for k in msg_dic:
# print(k,msg_dic[k])
# choice=input('商品名: ').strip()
# if len(choice) == 0 or choice not in msg_dic:
# print ('商品名非法')
# continue
# while True:
# num=input('购买个数: ').strip()
# if num.isdigit():
# break
# goods.append((choice,msg_dic[choice],int(num)))
# print('购物车',goods)






#
# key={'k1':[],'k2':[]}
# l=[11,22,33,44,55,66,77,88,99,90]
# for i in l:
# if i > 66:
# key['k1'].append(i)
# if i < 66:
# key['k2'].append(i)
# print(key)



# s='hello alex alex say hello sb sb'
# words=s.split()
# print(words)
# d={}
# for word in words:
# print(word)
# d.setdefault(word,s.count(word))
# print(d)
#






#
# pythons={'alex','allen','wxx','sb'}
# linuxs={'wupeiqi','oldboy','allen'}
#
#
# print(pythons & linuxs)
#
# print(pythons | linuxs)
#
# print(pythons - linuxs)
#
# print(pythons ^ linuxs)
#
#
#



#
# msg='hello world'
# print(msg[::-1])
# print(len(msg)) #这个len(msg)就等同于是msg.__len__()
# print(msg.__len__()) #__len__() 这种是python特殊的方法,一般不用
# print('llo' in msg)
# print('llo' not in msg)

# password=' pass word '
# print(password.strip()) #.strip移除字符串左右两边的空格
# print(password.strip()) #只会去除两边的,中间的并不会去除


# user_info='root:x:0:0:/root:/bin/bash'
# res=user_info.split(':') #按照':'切分,切分成列表,不写':'默认按照空格分割
# print(res[0])
# file_path='c:\\a\\b\\c.txt' #单个\有特殊意思,路径表示用双斜杠\\,或者在路径前加r
# print(file_path.split('\\',1)) #只切分一次
# ['c:', 'a\\b\\c.txt']
# file_path='c:\\a\\b\\c.txt'
# print(file_path.rsplit('\\',1)) #split默认从左往右切分,调用rsplit从右往左切分
# ['c:\\a\\b', 'c.txt']



# 字符串优先掌握的方法
#1、strip,lstrip,rstrip
# print('allen '.strip())
# print('allen '.lstrip()) #去除字符左边的符号,默认去除空格
# print('allen '.rstrip()) #去除字符右边的符号,默认去除空格

#2、lower,upper #字符串变小写和大写
# print('ALlen'.lower()) #全部变成小写
# print('allEn'.upper()) #全部变成大写

#3、startswith,endswith #以什么开头,以什么结尾
# msg='allen is cool'
# print(msg.startswith('allen')) #是否以allen开头
# print(msg.startswith('a')) #是否以a开头
# print(msg.endswith('cool')) #是否以cool结尾

#4、format的三种玩法 #格式化
#第一种玩法:
# print('my name is %s my age is %s' %('alex',18)) #以前的方法
# print('my name is {} my age is {}'.format('alex',18)) #现在的方法,占位符换成{},必须按照顺序传值
# print('my name is {} my age is {}'.format(18,'alex'))
#第二种玩法:不依赖位置
# print('my name is {x} my age is {y}'.format(y=18,x='alex')) #不依赖顺序传值
# print('my name is {name} my age is {age}'.format(age=18,name='male')) #命名要有意义
# 第三种玩法:
# print('{0} {1} {0}'.format('alex',18)) #按照数字取值
# print('{0} {1} {0}'.format('alex',18,19,55)) #多传一个值没有意义,不会报错

#5、split,rsplit #split是把字符串按照某一个分隔符切成列表
# info='root:0:1:2'
# l=info.split(':')
# print(l)

#6、join #把一个列表按照某一个分隔符拼成一个字符串
#只有在列表内的元素全是字符串类型时,才能用join拼接
# l1=':'.join(l)
# print(l1)

# l2=[1,2,3]
# ','.join(l2) #下面报错:TypeError: sequence item 0: expected str instance, int found


#7、replace #替换
# msg='allen say my name is allen ,allen have a tesla'
# msg.replace('allen','allen2') #把原来的字符串替换成一个新字符串,原值并没有改变
# msg2=msg.replace('allen','allen2') #把返回值重新赋值给msg2,就修改成功
# print(msg2)
# msg3='allen say my name is allen ,allen have a tesla'
# msg3=msg3.replace('allen','shuai',1) #,1只会更改一次
# print(msg3)

#8、isdigit #判断字符串内包含的是不是纯数字,纯整型,返回Ture,False
# age=input('age>> ').strip() #.strip 去除左右两边空格
# print(age.isdigit())
# if age.isdigit():
# age=int(age)
# else:
# print('必须输入数字!')




#了解的方法!!!
#1、find,rfind,index,rindex,count
#find和index都是查找,从左边开始查找
#rfind和rindex,从右边开始查找
#count统计个数
# msg='hello world'
# print(msg.find('wo')) #查找是否有wo这个字符串,返回第一个值得索引
# 6
# print(msg.find('SB')) #没有这个sb字符的时候返回的是-1,并不会报错

# print(msg.index('wo')) #查找是否有wo这个字符串,返回第一个值得索引
# 6
# print(msg.index('SB')) #ValueError: substring not found 没有的话直接报错

# print(msg.count('l'))
# print(msg.count('SB')) #没有的话返回为0


#2、center,ljust,rjust,zfill
#center填充
#ljust左对齐
#rjust右对齐
#zfill默认右对齐,不够的用0来填充
# print('egon'.center(30,'*')) #总长为30,两边用*来填充
# print('egon'.ljust(30,'*')) #字符串左对齐,不够30个右边用*来填充
# print('egon'.rjust(30,'*')) #字符串右对齐,不够30个左边用*来填充
# print('egon'.zfill(30)) #默认右对齐,不够的用0来填充


#3、expandtabs #
# print('hello\tworld'.expandtabs(10)) #\t在不同的操作系统不一样的意思,现在默认是四个空格
#调用.expandtabs方法可以指定几个空格


#4、captalize,swapcase,title
# print('i am egon'.capitalize()) #首字母大写
# print('i am egon'.title()) #每一个单词的首字母大写
# print('AbC'.swapcase()) #大小写翻转


#5、is数字系列
# num1=b'4' #bytes
# num2=u'4' #unicode,python3中无需加u就是unicode,默认就是
# num3='壹' #中文数字
# num4='Ⅳ' #罗马数字

#.isdigit只能判断bytes,unicode这两种格式
# print(num1.isdigit())
# print(num2.isdigit())
# print(num3.isdigit())
# print(num4.isdigit())

#.isdecimal只能判断unicode
# print(num2.isdecimal())
# print(num3.isdecimal())
# print(num4.isdecimal())

#.isnumeric可以判断unicode,中文,罗马
# print(num2.isnumeric())
# print(num3.isnumeric())
# print(num4.isnumeric())


#6、is其他
# name='egon123'
# print(name.isalnum()) #判断字符串由字母或数字组成,既可以纯数字也可以纯字母
# print(name.isalpha()) #字符串只由字母组成

# print('print1111'.isidentifier()) #字符串里面是否包含关键字
# print('abcA'.islower()) #判断是否全都是小写字母,有一个大写就False
# print(name.isupper()) #判断是否全都是大写字母,有一个小写就False
# print(' '.isspace()) #判断是不是空格,有一个其他字符就False
# print('Am Ia'.istitle()) #是不是标题,首字母大写才是标题





#作用:多个装备,多个爱好,多门课程,多个女朋友等

#定义:[]内可以有多个任意类型的值,逗号分隔
# my_girl_friends=['alex','wupeiqi','yuanhao',4,5] #本质my_girl_friends=list([...])
# print(list('hello')) #可以把但凡能够用for循环遍历的这种类型转换成列表
# ['h', 'e', 'l', 'l', 'o']

# print(int('123')) #把字符串转换成整型
# print(str(123)) #把整型转换成字符串


# 优先掌握的操作:
#1、按索引存取值(正向存取+反向存取):即可存也可以取
# my_girl_friends=['alex','wupeiqi','yuanhao',4,5]

#2、切片(顾头不顾尾,步长)

#3、长度 #统计列表就是把里面的元素一个一个统计出来
# print(my_girl_friends.__len__())
# print(len(my_girl_friends))
#4、成员运算in和not in
# print('wupeiqi' in my_girl_friends)

#5、追加
# my_girl_friends[5]=3 #IndexError: list assignment index out of range
# my_girl_friends.append(6) #追加到列表的最后面
# print(my_girl_friends)

#6、删除
# my_girl_friends=['alex','wupeiqi','yuanhao',4,5]
#单纯的删除
# del my_girl_friends[0] #del是通用的一种删除方式
# print(my_girl_friends)

# res=my_girl_friends.remove('yuanhao') #删除必须指定一个存在于里面的值
# print(my_girl_friends)

#删除并拿到结果:取走一个值
# res=my_girl_friends.pop(2) #按照索引去取走值
# res=my_girl_friends.pop() #不加参数默认从末尾去删除
# print(res)

# my_girl_friends=['alex','wupeiqi','yuanhao',4,5]
# print(my_girl_friends.pop(0)) #第一次取走'alex'
# print(my_girl_friends.pop(0)) #第二次取走'wupeqi'
# print(my_girl_friends.pop(0)) #第三次取走'yuanhao'


#7、循环
# my_girl_friends=['alex','wupeiqi','yuanhao',4,5]

# i=0
# while i < len(my_girl_friends):
# print(my_girl_friends[i])
# i+=1

# for item in my_girl_friends: #每次从my_girl_friends中取走一个值传给item
# print(item)

# for i in range(10):
# if i== 3:
# break
# # continue
# print(i)
# else:
# print('===>')







#掌握的方法
# my_girl_friends=['alex','wupeiqi','yuanhao','yuanhao',4,5]
# my_girl_friends.insert(1,'egon') #往列表中间插值,索引前一个位置
# print(my_girl_friends)

# my_girl_friends.clear() #清空列表
# print(my_girl_friends)

# l=my_girl_friends.copy() #copy一个新的列表
# print(l)

# print(my_girl_friends.count('yuanhao')) #统计元素的个数

# l=['egon1','egon2']
# my_girl_friends.extend(l) #.extend直接把l列表的值加到后面
# my_girl_friends.extend('hello') #把后面指定的值来个for循环,传到列表中
# print(my_girl_friends)

# my_girl_friends=['alex','wupeiqi','yuanhao','yuanhao',4,5]
# print(my_girl_friends.index('wupeiqi')) #.index去一个值得索引
# print(my_girl_friends.index('wupeiqissssss')) #没有值就报错

# my_girl_friends.reverse() #列表反转
# my_girl_friends=['alex','wupeiqi','yuanhao','yuanhao',4,5]
# my_girl_friends.reverse()
# print(my_girl_friends)


# l=[1,10,4,11,2,]
# l.sort #.sort排序,整型不能和字符串进行比较
# l.sort(reverse=True) #反过来排序
# print(l)

# x='healloworld' #字符串之间可以进行比较
# y='he2'
# print(x > y)

# l=['egon','alex','wupei']
# l.sort()
# print(l)



#二:该类型总结
# 1 存一个值or存多个值
# 可以存多个值,值都可以是任意类型

# 2 有序

# 3 可变or不可变
# !!!可变:值变,id不变。可变==不可hash


#练习
# 1. 有列表data=['alex',49,[1900,3,18]],分别取出列表中的名字,年龄,出生的年,月,日赋值给不同的变量

# 2. 用列表模拟队列(先进先出)
# l=[]
# l.append('alex')
# l.append('wupeiqi')
# l.append('yuanhao')
# l.append('huowentian')
# print(l)

# print(l.pop(0))
# print(l.pop(0))
# print(l.pop(0))
# print(l.pop(0))


# l=[]
# l.insert(0,'alex')
# l.insert(0,'wupeqiqi')
# l.insert(0,'yuanhao')
# l.insert(0,'huowentian')
# print(l)
#
# print(l.pop())
# print(l.pop())
# print(l.pop())
# print(l.pop())


# 3. 用列表模拟堆栈(先进后出,后进先出)
# l=[]
# l.insert(0,'alex')
# l.insert(0,'wupeqiqi')
# l.insert(0,'yuanhao')
# l.insert(0,'huowentian')
# print(l)
# print(l.pop(0))
# print(l.pop(0))
# print(l.pop(0))
# print(l.pop(0))


# 4. 有如下列表,请按照年龄排序(涉及到匿名函数)




# 元组
#作用:存多个值,对比列表来说,元组不可变(是可以当做字典的key的),主要是用来读

#定义:与列表类型比,只不过[]换成()
# age=(11,22,33,44,55) #本质age=tuple((11,22,33,44,55))
# print(type(age))
# age[0]=12

# t=(1,2,['a','b'])
# print(id(t[2]))
# t[2][0]='A'
# print(id(t[2]))
# print(t)

#优先掌握的操作:
#1、按索引取值(正向取+反向取):只能取
#2、切片(顾头不顾尾,步长)
# age=(11,22,33,44,55)
# print(age[0:3])
# print(age)
#3、长度
# age=(11,22,33,44,55)
# print(len(age))
#4、成员运算in和not in
# age=(11,22,33,44,55)
# print(11 in age)
#5、循环
# for item in age:
# print(item)


#掌握
# age=(11,22,33,44,55)
# print(age.index(33))
# print(age.index(33333))

# print(age.count(33))



#二:该类型总结
# 1 存一个值or存多个值
# 可以存多个值,值都可以是任意类型

# 2 有序

# 3 可变or不可变
# !!!不可变:值变,id就变。不可变==可hash

posted @ 2017-12-15 01:03  wuyanzu  阅读(154)  评论(0)    收藏  举报