您的位置:首页 > 编程语言 > Python开发

python笔记4 - 索引,切片,字符编码转换函数,字符串的属性方法,字符串格式化表达式,占位符,基于字典的字符串格式化,循环语句

2017-10-29 22:55 746 查看

2017/9/28

索引,切片,字符编码转换函数,字符串的属性方法,字符串格式化表达式,占位符,基于字典的字符串格式化,循环语句

 
========================================================================
索引index:
  python 字符串是不可以改变的"字符"序列
语法:
  字符串[整数值]
说明:
  序列都可以用索引(index)来访问序列的中对象
  序列正向的索引是从0开始的,第二个索引是从1,...,最后一个为len(s)-1
  序列的反向索引是从-1开始的,-2代表倒数第二个...,最后一个是-len(s)
实例1:
  s = "abcdefg"
  s[0] >>>a              s[4] >>>e
实例2:
  s[-1]>>>g              s[-4]>>>d
 
========================================================================
切片slice(分片)
字符传中,从字符串序列中去除相应的元素,重新组成一个新的字符串序列
切片分为正向切片和反向切片,
当步长为负数时为反向切片
 
语法:
字符串[开始索引b:结束索引e:(步长s)]  #包括索引b,不包括索引e  
注:小括号扩起的部分代表可以省略
 
实例:
s = ["ABCDE"]
>>>s[2:4]        >>'CD'     #包括索引2,单是不包括索引4,和range(a,b)生成序列类似,包括a,不包括b
>>>s[2:5]        >>'CDE'
>>>s[1:]         >>'BCDE'
>>>s[0:len(s)] >>'ABCDE'
>>>s[1:]         >>'BCDE'
>>>s[:len(s)]  >>'ABCDE'
 
>>>s[0:5:2]      >>'ACE'
>>>s[::2]        >>'ACE'
>>>s[1:5:2]      >>'BD'
 
>>s[-1:-6:-1]    >>'EDCBA'
>>s[:-6:-1]      >>'EDCBA'
>>s[::-1]        >>'EDCBA'
>>S[-2:-6:-1]    >>''
实例:
s = ABCDE
S1 = ABCDE|EDCBA
S1 = s + '|'+ s[::-1]   #切片中的反向步长能够实现字符的反向排序
 
========================================================================
 
python3中常用的序列函数(当有部分字符时,会转换成编码数再进行比较)
len(s)     返回长度
max(x)     返回序列中最大的元素
min(x)     返回序列中最小的元素
 
========================================================================
 
字符编码转换函数:
ord(s)     返回一个字符的编码值(ascii/unicode值)
chr(i)     返回i这个编码值所对应的字符
实例:
ord('a')   >>>97         #ascii的编码
ord('A')   >>>65         #ascii的编码
ord('0')   >>>48         #ascii的编码
chr(10000)   >>>铅笔       #unicode编码
chr(10001)   >>>钢笔       #unicode编码
 
整数转为字符串函数
bin(i)    将整数转换为二进制字符串
oct(i)    将整数转换为八进制字符串
hex(i)    将整数转换为十六进制字符串
实例:
0x7d0 >>>2000(十进制)
otc(2000) >>>0o3720(八进制)
bin(20000)>>>0b11111010000
 
字符串转换函数
str(x)  将对象转为字符串
int(x)
float(x)
complex(x)
bool(x)
 
实例:
int(3.14)    >>3
int("3.14")  >>错误 ,这里"3.14"是一个字符
bool("\0")   >>True    #这个字符虽然看不见(不在屏幕打印任何东西),单确确实实存在
max(5)       >>错误
========================================================================
字符串的属性方法:
对象.属性
例:
"123".isnumeric()    >>>True   语法正确,123是str类型   
"abc".isnumeric()    >>>False
2.isnumeric          >>>bug    语法错误,2是int类型,这里需要加上""转换为字符串再进行判断
 
字符串常用的方法(假设字符变量名为s)
      方法                                 说明
    s.isdigit()                     判断字符串是否全为数字
    s.isalpha()                    判断字符串是否全为字符(英文字符)
    s.islower()                    判断字符串是否全为小写字符    
    s.isupper()                    判断字符串是否全为大写字符
    s.isspace()                    判断字符串是否为空白字符
    s.isnumeric()                  判断字符串是否为数字(ascii)
 
------------------------------------------------------------------------------------------
 
    s.center(width[,fill])         将原字符串居中,左右默认填充空格
    s.conunt(sub[,start[,end]])    获取一个字符串中sub的个数
    s.find(sub[,start[,end]])      获取字符串中sub的索引,失败返回(找到的话返回下标,未找到返回-1)
    s.strip()                      返回去掉左右空白字符的字符串                     
    s.lstrip()                     返回去掉左空白字符的字符串 
    s.rstrip()                     返回去掉右空白字符的字符串
    s.title()                      生成每个单词首字符大写的字符串
    s.upper()                      生成将英文转换为大写的字符串
    s.lower()                      生成将英文转换为小写的字符串
    s.replace(old,new[,count]),    将原字符串old用new代替,生成一个新的字符串
 
实例:
' '.isspace       >>>True
'\t\n\r'.isspace  >>>True
"abc".center(10)      >>>'   abc    '
"abc".center(10,'@')  >>>'@@@abc@@@@'
'asdasdsf'.count('asd')    >>>2  (相似 "abc" in "abcdefg":  ,但是其只是bool运算,值返回布尔值)
"abcdabcd".conut("a",4,7)  >>>1
"abcdababc".find('ab')     >>>0
"abcdababc".find('aba')    >>>4  (找到的话返回下标,未找到返回-1)
"abcdababc".find('kb')     >>>-1
‘    nihai你好     ’.strip()  >>>'nihai你好'
"hello world".title()           >>>"Hello World"
"hello world".upper()           >>>"HELLO WORLD"
"hello world".lower()           >>>"hello world"
"my name is xiaoyuxiu".replace('xiaoyuxiu','nihaonihao')   >>>'my name is nihaonihao'
"ab abc abcd AB".replace('ab','AB',2)                      >>>'AB ABc abcd AB'
 
注意:
注1:空白字符是指 水平制表符\t 换行符\n 空格' '等不可见字符 
注2:帮助手册 help(str)
注3:这里只会生成新的字符串,而不是改变原来变量绑定的字符内容
 
实例:
print('abc\tabc')
print(len('abc\tabc'))
 
print('abcabc')
print(len('abcabc'))
 
print('abc abc')
print(len('abc abc'))
 
tudoudaxia@can:~/lolclear7$ python3 yuan.py
abc abc
7
abcabc
6
abc abc
7
========================================================================
字符串格式化表达式:生成一定格式的字符串
运算符:
  语法:格式字符串 % 参数值
        格式字符串 % (参数值1,参数值2,...)
实例1:
  fmt = "姓名:%s,年龄:%d"      ####### %s,%d 格式化占位符
  name = "xiaoyuxiu"
  age = 23
  print(fmt % (name,age))
>>>姓名:xiaoyuxiu,年龄:23
 
实例2:
"aa %s cc" % "bb">>>'aa bb cc'
 
========================================================================
占位符:
占位符类型码          意义
    %s               字符串(人类识别)
    %r               字符串,使用repr()转义,而不是str()(机器识别,比如会对 ' 进行转义,变成 \')(repr()将表达式变成字符,eval()将字符变成表达式)
    %c               整数转为单个字符
    %d               十进制整数
    %o               八进制整数
    %x               十六进制整数(字符a-f小写)
    %X               十六进制整数(字符A-F大写)
    %e               指数型浮点数(e小写),如2.9e+10
    %E               指数型浮点数(E大写),如2.9E+10
    %f,%F            十进制浮点数形式
    %g,%G            十进制形式浮点或指数浮点自动换行
    %%               等同于一个字符%
 
实例:
'%o' % 9       >>>11
'%x' % 200     >>>c8
'%X' % 200     >>>C8
'%c' % 10000   >>>'?'
'%e' % 25400000   >>>'2.540000e+07'
'%E' % 25400000   >>>'2.540000E+07'
'%f' % (2.9*10**8)  >>>'290000000.000000'
'%d' %   10   >>>10
'%d%%' % 10  >>>10%            #百分号已经不是百分号,而是一个新的转义符号,如果要表示一个百分号,需要两个百分号连在一起完成表示
总结:
%后面的数用%前面的格式重新输出
 
========================================================================
基于字典的字符串格式化:
"%(name)s 今年 %(age)d 岁" % {"age":23,"name":"xiaoyu"}
#不必进行位置对应,"age""name"会按前面的名字进行对其
 
 
占位符合类型码之间的格式语法
-号左对齐
+号右对齐(显示正负号)
0 补零
width 宽度
pricision 精度(仅限在浮点数中使用)
 
实例:
"%d" % 123 >>>'123'
"%10d" % 123>>>'       123'          #补成10个字符,字符右对齐
"%-10d" % 123>>>'123       '         #补成10个字符,字符左对齐
"%010d" % 123>>>'0000000123'          #补成10个宽度,空白的地方0补齐
"%7.2f" % 1.2345678>>>'   1.23'      #7补成宽度,2表示精度
 
========================================================================
循环语句:根据一定的条件,重复的执行一个或多个语句包括:while语句 和 for语句。 
 
while:
语法:while 真值表达式:
        语句1
         ...
      else:
        语句2
         ...
 
语法说明:
   else子句可以省略
执行顺序:
  1.线判断真值表达式是否为True
  2.如果第1步为True,则执行语句1后跳到第1步,否则跳到第3步
  3.执行else子句
  4.结束while语句的执行
 
实例1:
打印1~10的整数
n =1
while n <= 10:
    print(n)
    n += 1
 
实例2:
n =1
while n <= 10:
    print(n)
     n += 1
bug:IndentationError: unexpected indent
解析:n自增语句缩进,未与p对齐
 
实例3:
n=1
while n<=10:
    print(n)
    n += 1
else:
    print("循环条件不成立")
print("我是最后一条语句")
 
实例4:
n=1
while n<=10:
    print(n)
    n += 1
else:
    print("循环条件不成立")
print("我是最后一条语句")
bug:SyntaxError: invalid character in identifier
分析:括号用的是中文,如果正确,括号下面会出现横线提示
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐