wangminghu

一.数据类型
1.数字   int
2.整型  
3.浮点型  float

a += 1  和  a = a+1 方法相同


布尔值:真和假,1 和 0 ,1是真,0是假


二.字符串
填充、删减、变形、切分、连接、判定、查找、替换、编码
    type(\'a\')
    str(1) #转换成字符串
    int(\'1\') #转成数字
    \n #自动换行

1.填充
name = \'WMH\'
name.center(10,\'*\')
expandtabs() #expandtabs()的tabsize 参数默认为8填充空格,但必须有\t制表符
print(\'a\tb\'.expandtabs())
print(\'a\tb\'.expandtabs(4))   # \t 为制表符
print(\'KKKKKKK123dddd\'.lower())  #转小写
print(\'jfksjfsa\'.upper())  #字符串转大写
print(\'jfksjfsa\'.capitalize()) #首字母大写
print(\'a\'.join(\'bcd\')) #返回字符串,插入字符,隔一个插一个

2.删减
strip()  #去两边,脱衣服
print(\'   a   \'.strip())

3.字符串判断 ==> 索引(下值,位置参数,传参)
#索引:
        \'hello python\'
        \'hello python\'[0]
        \'hello python\'[1]
        \'hello python\'[0:2] #0到2的索引,返回he,有下限,没有上限
        \'hello python\'[2:] #从2到最后
        \'hello python\'[-1] #只取最后
        \'hello python\'[0:-1]
        \'hello python\'[:] #从0到最后
        \'hello python\'[::2]
        \'0123456789\'[::2] #格2取1
        \'0123456789\'[::3] #格3取1
        len(\'hello python\') #返回字符串长度
4.判断:
        isalnum()  #判断是否为字母或数字组成,返回True或False
        name = \'123acb\'
        name.isalnum()
        \'123abc\'.isalnum()
        isalpha() #判断是否为字母组成,返回True或False
        isdigit()#判断字符串是否为数字组成,返回True或False
        islower() #判断是否为小写字母
        isspace() #判断是否为空格
        startswith() #以什么开始
        \'ssdfsfds\'.startswith(\'s\',3,5)
        endswith() #以什么结束
        \'ssdfsfds\'.endswith(\'f\')

判断是否为数字,不是即返回错误数据类型
age =input("your age : ")
if age.isdigit():
    age = int(age)
else:
    print("invalid data type")

your age : sdfsa
invalid data type

 

   
5.字符串查找
        count()
            \'dsfsdfasfd\'.count(\'f\') #统计f的个数
            \'dsfsdfasfd\'.count(\'a\',0,5) #查找a,从0到5,不包括5
        find()
            \'dsfsdfasfd\'.find(\'a\')
            \'dsfsdfasfd\'.find(\'f\') #查找完返回索引值
            \'dsfsdfasfd\'.find(\'f\',4) #查找完返回索引值
            \'dsfsdfasfd\'.find(\'k\') #找不找返-1
        index()
            \'dsfsdfasfd\'.index(\'k\') #找不找返错

6.字符串替换
        replace()
            \'hello python\'.replace(\'h\',\'H\') #h替换H
            \'hello python\'.replace(\'h\',\'H\',1)#1是指最大替换个数
7.字符串编码chr ord #ascii码,对信息加密方式
            chr(a)
            ord(97)    
         encode() #加码
         decode() #解码
             a = u\'aaaa\'
             a.encode(\'gbk\')
             print a
             a.decode(\'utf-8\')
             print  a.decode(\'utf-8\')

        a = \'中国\'
        a.encode(\'utf-8\')
        a.decode(\'gbk\')
        print a.decode(\'gbk\')
        print a.decode(\'gbk\').encode(\'utf-8\')
8.字符串拼接
        \'a\'+\'b\'
        \'a\'*3   #打印三次
        #不要type()判断是否为数字
        print("wmh"+ "wml")

 

二.列表

1.索引
根据索引号打印值
name = ["minghu","minglong","jack",22,9,[\'dfsj\',\'fksjd\'],23]
print(name[-1])       #根扰索引号打印对应的字符,打印最后一个索引的值
print(name[-2])       #打印最后第二个索引的值
print(name[0:1])      #打印索引0到1,不包括1

print(name[2:5])      #打印索引2到5的值,不包括最后的索引
print(name[-5:])      #取最后5个值
print(name[-5:-1])    #不取最后一个
print(name[:])        #取全部
print(name[:6])       #取索引开头到索引6,不包括6


2.二次取
print(name[5][0])   #取列表中列表索引 
print(name[:6][2:4][0])

 

3.修改:
name[1] = "wangminghu"
print(name)


4.插入
name.insert(2,\'minggo\')
print(name)

5.追加
name.append("alex")


6.删除
name.remove("minggo")

 

7.查找:
print(9 in name) #判断9是否在列表中,有则返回True,无则返回False
name=[\'9\',\'9\',\'8\']
print(name.count("9"))  #统计有几个9

 

name=[\'9\',\'9\',\'8\']
if "9" in name:
    num_of_ele = name.count("9")  #统计有几个9
    print("[%s] 9 is/are in name" % num_of_ele)


name=[9,9,8]
if 9 in name:
    num_of_ele = name.count(9)  #统计有几个9
    print("[%s] 9 is/are in name" % num_of_ele)

 

8. 更改第一个索引的值   
name=[9,9,8]
if 9 in name:
    num_of_ele = name.count(9)  #统计有几个9
    posistion_of_ele = name.index(9)
    name[posistion_of_ele] = 999    #只修改第一个索引的值
    print(name)   
   
   

9.全部更改
for i in range(name.count(9)):
    ele_index = name.index(9)
    name[ele_index] = 99999999999999999

10.合并表
name=[9,9,8]
name2 = [\'fsaf\',\'fdsafa\']
name.extend(name2)   #把name2的表合并到name表


11.反转
name.reverse
print(name)


12.排序
name.sort
print(name)


14.删除索引元素
pop #弹出,返回后删除索引元素
        a.pop()
        a.pop(3)
       
       
       
15.去两边,拖衣服,例input输入有空格,即不执行内容,可以使用strip()脱掉,即你随意多少空格都去掉
有空格交互1:
username = input("user:")
if username == \'alex\':
    print("welcome")
user:alex      #此处有空格

Process finished with exit code 0   #输入正确信息,后面有空格,即判断不正确,即退出
   
使用strip后的空格交互:
if username.strip() == \'alex\':
    print("welcome")
user :alex        #此处有多个空格
welcome           #输入了正确信息,脱掉了所有空格,输出了想要的结果

 

16.切分:split使用
names="alex,jack,rain"
name2=names.split(",")   #变成列表
print(name2)
print("|".join(name2))  #合成字符串
print(name2)

[\'alex\', \'jack\', \'rain\']
alex|jack|rain
[\'alex\', \'jack\', \'rain\']


17.判断是否有空格
name = "alex li"
print(\' \' in name)
True

 


18.不完全COPY
name3 =name.copy()
name[0]=\'ALEX\'
name[3][1] = 4444444444444

import copy
name=[\'fdsafsa\',\'fkjdsaflsaf\',\'jfkdsajflsa\',\'fdsafsa\']
name4=copy.copy(name)
print(name4)


19.完全克隆
import copy
deepcopy
name = [\'sa\',\'fdsa\',\'fdsaf\',\'fsa\',[\'fsa\',\'fsa\',\'dfa\'],\'fdsfa\',\'dfaf\']
copy4.deepcopy(name)

 

20.格式化字符串
字符串的format函数可以接受不限个参数,位置可以不按顺序,可以不用或者用多次
a=(\'{0},{1}\'.format(\'kzc\',18))
print(a)
\'kzc,18\'

\'{},{}\'.format(\'kzc\',18)
\'kzc,18\'
\'{1},{0},{1}\'.format(\'kzc\',18)
\'18,kzc,18\'
 
msg="hello,{name},long {age} "
msg2=msg.format(name=\'fdsf\',age=33)
print(msg2)
hello,fdsf,long 33

 

 

 

三.课堂作业1
1.需求:
列表包括所有成员名字
往中间插入两个临组成员的名字
取出第3-8的人
删除第7个人
把临组2个人一次性删除
把组长的名字加备注
要求隔一个人打印一个人


2.实现
name = [\'wmh\',\'wml\',\'rain\',\'tom\',\'xiaoming\',\'xx\',\'mm\',\'jsjf\']
name.insert(-1,"minghu")   #放到负一的左边
name.insert(4,"minglong")
print(name)
name2 = name[2:7]
print(name2)
name.remove(\'mm\')
del name[4:6]   #同时删除两个人
del name   #整个变量删除
name[2]="wml(zuzhang)"
print(name[0:-1:2])    #2为步长,但不打印最后一个,隔一个打一个
print(name[0::2]) print(name[::2])  #隔一个打一个

 

 


四.while loop 死循环

#死循环限制100,跳过50到60继续执行,到100即退出
count =0
while True:
    count += 1
    if count > 50 and count < 60:
        continue
    print("NIU",count)
    if count == 100:
        print("fdsjakfjsajfsa")
        break


五.字典

wmh_dict = {
    1:{\'name\':"linzhiling","age"
    :22,\'addr\':\'taiwan\'},
    2:{\'name\':"linxinru",\'age\':21,
    \'addr\':\'taiwan\'},
    3:{\'name\':"gaoyuanyuan",\'age\':\'20\',
    \'addr\':\'dalu\'}
}
print(wmh_dict)
print(wmh_dict[1])   #打印key名字为1的值
wmh_dict[2][\'name\']= "xuxiyuan"   #更改key名字为2嵌套字典key名为name的值
print(wmh_dict[2])
wmh_dict[2][\'fanbingbing\'] = 2  #没有即加
wmh_dict[2].pop("addr")  #删除addr   KEY
v=wmh_dict.get(1)  #获取字典内所有键对应的值,同a[\'keyname\']相同
print(v)

 


判断key是否在字典中,有则回显,这种方法效率高
for key in wmh_dict:
    print(key,wmh_dict[key])

更新即替换   
a = {\'name\':\'zhangsan\',\'age\':20,\'abort\':{\'father\':\'laozhang\',\'mother\':\'zhangsan\'}}
a.update(name = \'wmh\') #和a[\'name\'] = \'wmh\' 效果相同
{\'name\': \'wmh\', \'abort\': {\'father\': \'laozhang\', \'mother\': \'zhangsan\'}, \'age\': 20}
dict.update()  #更新字典键对应的值
    a.update(name = \'wmh\') #和a[\'name\'] = \'wmh\' 效果相同
    a   

分类:

技术点:

相关文章: