python基础2

1、运算符

①结果是数值:

算术运算符: +、-、*、/、%、//

赋值运算:=   +=    -=    *=

②结果是布尔值:

成员运算: in      not in

比较运算:   ==   >   <    >=    <=   !=    <>

逻辑运算:  and  or(括号优先)

 

***Ctrl+?   注释(#)

2、数据类型

(1)数字:整数、浮点

                   python3     int

                   python2     int       long

方法: ①print(int('123'))——字符串转化成整数

           ②type()——查看类型

           ③16进制转化成10进制

num = "a"
print(int(num,base=16))

            ④ bit_length()——当前数字的二进制,至少n位表示

#二进制  1—1   2—10  3—11 4—100 5—101
num=5
r=num.bit_length()
print(r) #3

 

(2)字符串   str

方法:   find()   strip()   split()   join()   upper()  lower()  replace()

test='moTohalu'
#首字母大写
v1=test.capitalize()
print('首字母大写:'+ v1)

#所有字母变小写
v2=test.lower()
print('所有字母变小写:'+ v2)

#设置宽度,并将内容居中,20—是总长度,“*”空白位置填充
v3=test.center(20,"*")
print('居中:'+ v3)

#寻找字符串中子序列的个数
v4=test.count('o',3)
print(v4)

#是否以...开始,以...结尾,返回布尔值
v5=test.endswith("u")
print(v5)
v6=test.startswith("m")
print(v6)

#从开始往后找,找到第一个,获取其位置(可以设置起始位置和结束位置 >和<=)
#未找到  -1    
# index()方法若未找到则报错
v7=test.find("lu")
print(v7)

#格式化,将一个字符中占位符替换为指定的值
read1= 'I am {name},age {a}'
v8=read1.format(name='Amy',a=33)
print(v8)  ##I am Amy,age 33
#占位符的位置
read2= 'I am {0},age {1}'
v9=read2.format('apple',77)
print (v9)  ##I am apple,age 77


  

###断句20个位置  \t 制表符   \n 换行,可制作类似表格
test2='username\tpassword\temail\nhujuanju\t12334\tsdffdc@163.com' v10=test2.expandtabs(20) print(v10)
###结果 username password email ####### hujuanju 12334 sdffdc@163.com

是否判断型方法

#判断字符串中只包含字母和数字,结果是布尔值
test='sdsfdg__'
v11=test.isalnum()
print(v11)  ###False


#是否字母(汉字也行),返回布尔值
test1='dscfd董'
v12=test1.isalpha()
print(v12)

#是否是数字,返回布尔值
##123 true true
##①  true true
##一二 false true
test2='1234'
v13=test2.isdigit()
v14=test2.isalnum()
print(v13,v14)

#是否全部是空格
test3='   '
v15=test3.isspace()
print(v15)

#是否是标题,每一个字母首字母大写
test4='Return money host'
v16=test4.istitle()
print(v16)  ##False
v17=test4.title()
print(v17)  ###Return Money Host

  

#将字符串中的每一个元素按照指定分隔符进行拼接
test='床前明月光'
v18='-'.join(test)
print(v18)  ##床-前-明-月-光

#left左边填充*满20个字符
v19=test.ljust(10,"*")
print(v19) ##床前明月光*****

#right右边填充*满20个字符
v20=test.rjust(10,"*")
print(v20) ##*****床前明月光

 

#小写
test='BOBfdsv'
v21=test.islower()
v22=test.lower()
print(v21,v22)  ###False bobfdsv


#大写
test='BOBfdsv'
v23=test.isupper()
v24=test.upper()
print(v23,v24)  ###False BOBFDSV

  

#### 默认 去除空格 和  \n  \t
#### 去除某个元素(优先最多匹配)
test=' gulu  gulu'
v25=test.lstrip()
v26=test.rstrip('dlu')### gulu  g
v27=test.strip(' ')###左右都去
print(v26)

  

## 分割成3份(包含分割的元素)
test="疑似地上霜疑似地上霜地上霜"
v28=test.partition('霜')
print(v28)  ##('疑似地上', '霜', '疑似地上霜地上霜')
v29=test.rpartition('霜')
print(v29)  ##('疑似地上霜疑似地上霜地上', '霜', '')


##分割(不包含分割的元素)
v30=test.split('霜')
print(v30) ##['疑似地上', '疑似地上', '地上', '']

##换行分割
test1='fedbg\ndefvd\n'
v31=test1.splitlines()
print(v31)

  

##大小写转换
test='aBcDeFg'
v32=test.swapcase()
print(v32)  ###AbCdEfG

 

##替换
test="静夜思静夜hh静夜hdh"
v33=test.replace("静夜","姑姑",2)
print(v33) ##姑姑思姑姑hh静夜hdh

  

len()    join()   for循环  索引    切片    在其他数据类型也能使用

索引(下标,从0开始)

##索引,获取字符串中的某一个字符
test='abcdefg'
v1=test[3]   ###  d
print(v1)

##范围索引
v2=test[0:2]  ## >=0&&<2
print(v2) ## ab

##切片
v3=test[0:-1]
print(v3)  ###abcdef

##字符长度
v4=len(test)
print(v4) ## 7

##汉字  python3—3     python2—9
v5=len('哈哈哈')
print(v5)

###len()   join() 在其他数据类型也能使用

 

###单个字符输出(循环)
test='葫芦噶华丽的时间长了'

####  while
index = 0
while index < len(test):
    v1=test[index]
    print(v1)
    index += 1
print('---END---')

###  for
for v2 in test:
    print(v2)

 

test='   咕噜冒泡呼呼呼哈'

for item in test:
    print(item)
    break ### 咕  结束整个循环

for item in test:
    print(item)
    continue ## 终止当前循环

  

*****字符串一旦创建,不可修改,一旦修改或拼接,都会重新生成新的字符串  

 

range()

### range  创建连续的数字
v1=range(100)
print(v1)  ###range(0, 100)  (>=0 && <100)
for item in v1:
    print(item) ###输出 0 1 2 ...99
    
###步长为5
v2=range(0,100,5)
print(v2)
for item in v2:
    print(item) ###输出 0 5 10 ...95

 

####将用户输入的索引打印出来
test = input('>>>')
print('输入的字符为:'+test)
l = len(test)
print('输入字符的长度为:',l)
r = range(0,l)
for item in r:
    print(item,test[item])

  

 

 

(3)布尔值    bool                    True  \  Flase

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

(4)列表 List

列表是有序的,元素可以被修改

—中括号括起来   [   ]

— ,分割每个元素

— 列表中可以是数字,字符串,布尔值,列表...

— 索引取值

— 切片取值,切片结果仍是列表

— for循环

— while循环

— in操作

— 列表元素,可以被修改(链式存储)

 

li = [1, 3, 5, 'kkkk', '噗噗吗', ['dsc', 89]]
print(li)

##索引修改
li[2] = '第二'
print(li)  ##[1, 3, '第二', 'kkkk', '噗噗吗', ['dsc', 89]]

##索引删除
del li[1]
print(li)  ##[1, '第二', 'kkkk', '噗噗吗', ['dsc', 89]]

##切片修改
li[1:3] = [23, 'saas']
print(li)  ##[1, 23, 'saas', '噗噗吗', ['dsc', 89]]

##切片删除
del li[0:3]
print(li)  ##['噗噗吗', ['dsc', 89]]

 

 

### 嵌套查找
li = [1, 3, 5, 'kkkk', '噗噗吗', ['dsc', 89,'咕咕哒'],True]
print(li[5][0][1])   ##  s

字符串和列表相互转换

### 字符串转换成列表
s = 'ssfervh1232'
new_li = list(s)
print(new_li)  ###['s', 's', 'f', 'e', 'r', 'v', 'h', '1', '2', '3', '2'# ]
### 数字不能直接转换成列表


### 列表转字符串
li = [12, 34, 45, 'ddsc', 'sds']
print(str(li))  ### [12, 34, 45, 'ddsc', [334, 'dfs', True]]

###自写for循环(既有数字又有字符串)
s = ''
for i in li:
    s = s + str(i)
print(s)  ###123445ddscsds

####列表元素只有字符串
li = ['ds', '普马马', 'dcs']
v = ''.join(li)
print(v)  ###ds普马马dcs

  

方法:

 

##  在列表最后增加元素
li = [23,54,345,'dgs',23,23]
li.append(55)
print(li)  ###[23, 54, 345, 'dgs', 55]

###计算元素出现的个数
n = li.count(23)
print(n)  ### 3

###扩展原列表, 参数,可迭代对象
li.append([776,'fsvt'])
print(li) ###[23, 54, 345, 'dgs',  [776, 'fsvt']]

li.extend('不肯')
print(li) ### [23, 54, 345, 'dgs', '不', '肯']

li.extend([776,'fsvt'])
print(li)  ###[23, 54, 345, 'dgs',  776, 'fsvt']

### 获取当前值索引位置(左边优先),可设置起止位置
li=[22,23,45,23]
v = li.index(23)
print(v)  ### 1

### 在指定索引位置插入元素
li =['vw',465,67,'fgd']
li.insert(1,'一号') ###['vw', '一号', 465, 67, 'fgd']

### pop() 默认删除最后一个元素,并获取
li =['vw',465,67,'fgd']
v = li.pop()
print(li,v)   ### ['vw', 465, 67] fgd
### 也可指定索引
li =['vw',465,67,'fgd']
v = li.pop(2)
print(li,v)  ##['vw', 465, 'fgd'] 67


### 删除列表中的指定值,左边优先
li =['vw',465,67,'fgd',67]
v = li.remove(67)
print(li)  ## ['vw', 465, 'fgd', 67]

### 删除   pop()   remove()  del li[4]   del li[1:4]

### 将当期列表进行反转
li =['vw',465,67,'fgd',67]
v = li.reverse()
print(li)  ### [67, 'fgd', 67, 465, 'vw']

### 排序
li = [22,44,66,12,53,33]
li.sort()  ##从小到大  ## [12, 22, 33, 44, 53, 66]
li.sort(reverse=True)  ##从大到小  ## [66, 53, 44, 33, 22, 12]
print(li)

 

  

(5)元祖  tuple

元祖,有序,元素不可被修改,不能被增加或删除

— 括号包含元素  (  )

— 一般写元祖,推荐最后加 ,

— 索引

— 可以切片

 

tu = (12,44,34,'dsdf')
print(tu)

## 索引
print(tu[0])  ### 12

##切片
print(tu[1:3])  ## (44, 34)

## for循环 , 可迭代对象
for i in tu:
    print(i)

#### 字符串、列表、元祖 -—可迭代对象

 

 

###  字符串转换成元祖
s = 'effesd'
tu = tuple(s)
print(tu)  ##('e', 'f', 'f', 'e', 's', 'd')

### 列表转换成元祖
li = ['ds',23,443]
tu = tuple(li)
print(tu)  ###('ds', 23, 443)

### 元祖转换成列表
tu = ('fewsf',223,23)
li = list(tu)
print(li)  ## ['fewsf', 223, 23]

### 字符串转换成元祖 (只有字母)
tu = ('ds','sdas','sad')
v = "".join(tu)
print(v)  ### dssdassad

### 字符串转换成元祖 (既有数字又有字母)
tu = ('fewsf',223,23)
s=""
for i in tu:
    s += str(i)
print(s)  ## fewsf22323

  

 

 

 

## 嵌套获取
tu = ('wd',12,('ssa',12),(['sdd',2333],23),'sa',True)
print(tu[3][0][1])  ###2333

 

 

##元祖一级元素不可修改,元祖内嵌套的列表可以修改
tu = ('wd',12,('ssa',12),(['sdd',2333],23),'sa',True)
tu[3][0][1] = 555
print(tu) ###('wd', 12, ('ssa', 12), (['sdd', 555], 23), 'sa', True)

 

方法:  count()     index()

 

 

(6)字典 dict

—  字典的value可以是任何值

— 字典的key 不能用 布尔值(可用,和0、1重复)、列表、字典

— 字典 无序(可用for、不可用while)

 

info = {"k1": "v1",  ##键值对
        'df': 123,
        1: "sdsd",
        (12, 34): ['dsfs', 34],
        'sds': True}
print(info)  ## {'k1': 'v1', 'df': 123, 1: 'sdsd', (12, 34): ['dsfs', 34], 'sds': True}

### 索引方式找到指定元素
v = info[(12, 34)][1]
print(v)  ## 34

### 删除
del info['sds']
print(info)  ##{'k1': 'v1', 'df': 123, 1: 'sdsd', (12, 34): ['dsfs', 34]}

## for循环
for i in info:
    print(i)  #### 获取key

for i in info.keys():
    print(i)  #### 获取key

for i in info.values():
    print(i)  #### 获取values

for k, v in info.items():
    print(k, v)  ### 获取key 和 value (键值对)

 

 

方法: clear()  —清空    copy()—拷贝 

keys()      value()    items()   get   update

### 根据序列创建字典,并指定特定的值,默认为None
v=dict.fromkeys(["k1",123,"er"],123)
print(v)  ### {'k1': 123, 123: 123, 'er': 123}

### get()  根据key取字典的value,key不存在时,可以指定值,默认为None
info = {"k1":"vv"}
v = info.get("k111","没这个key!")
print(v)

### 删除,并可返回value
dic = {"k1":"vv",
        "k2":"uuu"}
v = dic.pop('k2')
print(v)  ###获取删除的value  uuu

### 删除(随机),返回key+value
k,v = dic.popitem()
print(k,v)

### 设置值
### 若不存在,设置值
dic = {"k1":"vv",
       "k2":"uuu"}
v = dic.setdefault('k3',123)
print(dic)  ###{'k1': 'vv', 'k2': 'uuu', 'k3': 123}
### 若已存在,不设置,获取当前key的值
v = dic.setdefault('k2',44)
print(v) ## uuu
print(dic) ## Process finished with exit code 0

###  更新
dic = {"k1":"vv",
       "k2":"uuu"}
dic.update(k1=123,k3='sadd')
print(dic)  ### {'k1': 123, 'k2': 'uuu', 'k3': 'sadd'}

  

 

 

 

 

 

posted @ 2019-01-13 18:14  kuluma  阅读(211)  评论(0编辑  收藏  举报