字符串的基本操作
  索引 index
    Python字符串是不可以改变的字符序列
	
  索引取值语法:
    字符串[整数表达式]
	s = 'ABC'
	s[0]  # A
	s[1]  # B
	s[2] 或 s[1+1]  # B
	
  说明:
    Python的序列都可以用索引来访问序列中的对象
	Python序列的正向索引是从0开始的,第二个索引为1,最后一个索引为len(s)-1
	Python序列的反向索引是从-1开始的,-1代表最后一个,-2代表倒数第二个,
	以此类推。第一个是- len(s)
	
  示例:
    s = "ABCDE"
	print(s[1])   #  B
	print(s[4])   #  E
    print(s[-1])   #  E
    print(s[-5])   #  A
	print(s[100])  # IndexError 越界
	
练习:
  写程序输入一个字符串,打印字符串中的如下内容
    1、打印这个字符串的第一个字符
	2、打印这个字符串的最后字符
	3、如果这个字符串的长度是奇数,打印中间这个字符
	  注:求字符串长度的函数是len(s)
	  
切片 slice
  作用:
    从字符串序列中取出相应的元素重新组成一个新的字符串
  语法 
    字符串[(开始索引b):(结束索引e)(:(步长s))]
  注:
    小括号()括起来的部分代表可省略
	
  说明:
    开始索引是切片开始切下的位置,0代表第一个元素,1代表第二个元素
	,-1代表最后一个元素....
	结束索引是切片的终止索引(但不包括终止点)
	步长是切片每次获取完当前元素后移动的方向和偏移量
	  1.没有步长,相当于步长为1(默认为1)
	  2.当步长为正整数时,取正向切片:
	    开始索引默认为0,结束索引默认是最后一个元素的下一个位置
	  3.当步长为负整数时取反向切片:
	    反向切片时,默认的起始位置为最后一个元素,终止位置是第一个
		元素的前一个位置
  示例:
    s = "ABCDE"
	s[1:4]  #  'BCD'
	s[:]    #  'ABCDE'
	s[:4]   #  'ABCD'
	s[1:1]  #  ''(空)
    s[4:2]  #  ''(空)
	s[0:5:2]  #  'ACE'
	s[4:0:-2] #  'EC'
    s[::-2] #  'ECA'
	s[::-1]  #  'EDCBA'
	
练习:
  1、写一个程序,输入一个字符串,把字符串的第一个字符和最后一个字
  符去掉后,打印出处理后的字符串
  2、写程序,输入任意一个字符串,判断这个字符串是否是回文,回文是指
  中心对称的文字,如:
    上海自来水来自海上
	ABCCBA
  
  
Python3中能用于字符串的函数:
  len(x)  返回字符串长度
  max(x)  返回字符串编码值最大的字符
  min(x)  返回字符串编码值最小的字符
  
字符串的编码转换函数:
  ord(c)  返回一个字符c的unicode编码值
  chr(i)  返回i这个值所对应的字符
  
  示例:
    x = ord('A')  # x = 65(十进制的方式)
	c = chr(66)   # c = 'B'
	
练习:
  1、写一个程序,输入一个字符串,如果字符串不为空,则把第一个字符的
  编码值打印出来
  2、写一个程序,输入一个整数(0-65535),打印这个数值所对应的字符
  
	
整数转换为字符串的函数:
  bin(i)  将整数转换为二进制字符串
  oct(i)  将整数转换为八进制字符串
  hex(i)  将整数转换为十六进制字符串
  
字符串构造函数:
  str(obj)  将对象转换为字符串
  示例:
    '123' + 456  #  出错
	'123' + str(456) #  '123456'
  
python3中常用的字符串的方法(method)
  方法的调用语法:
    对象.方法名(方法传参)
  示例:
    'abc'.isalpha()  # 返回True
	'123'.isalpha()  # 返回False
	123.isalpha()    # 出错
	'hello'.find("he")   # 0  代表查找索引的开始位置
	
	s = "   ABCD     "
	s2 = s.strip()  #  'ABCD'(去掉空白部分)
	s = '\n\t\r    a b c d    \n\n\n\r'(\n等属于空白字符)
	s2 = s.strip()    #   'abcd'
	s = '#####AB####'
	s2 = s.strip("#")  #   'AB'
	
	replace方法后面换成空字符可以变成删除的作用
  方法见文档:
    python_base_docs_html/str.html
	
练习:
  输入一个字符串:
    1、判断您输入的字符有几个空格
    2、将原字符串的左右空白字符去掉,打印出有效的字符个数
    3、判断您输入的是否是数字,如果是数字,判断用户输入的数字
        是否大于100	
	
字符串格式化表达式
  作用:
    生成一定格式的字符串
  运算符:
    %
  语法格式:
    格式化字符串 % 参数值
	格式化字符串 % (参数值1,参数值2,参数值3,...)
  说明:
    格式化字符串中以%开头的字符为占位符,占位符的位置将用参数值替换
  示例:
    fmt = "name: %s,age: %d"
	s2 = fmt % ("Tarena",15)
	
	fmt = "age: %d"
	s3 = fmt % 18
	
格式化字符串中的占位符类型码
  占位符和类型码        含义
        %s              字符串,使用str(x),函数转换
        %r              字符串,使用repr(x),函数转换
        %c              整数转为单个字符(相当于执行chr函数)
        %d              十进制整数
        %o              八进制整数
        %x	            十六进制整数(字符a-f小写)
        %X              十六进制整数(字符A-F大写)
        %e              指数形浮点数(e小写)如:2.9e8
        %E              指数型浮点数(E大写)如:2.9E8
        %f,%F           浮点十进制数
        %g,%G           十进制形式浮点或指数浮点自动转换
        %%		        等同于一个字符
	
占位符和类型码之间的格式语法
  % [ - + 0 宽度.精度 ] 类型码
    -    左对齐(默认是右对齐)
	+    显示正号
	0    左侧空白位置补0
	宽度    整个数据输入的宽度
    精度    保留小数点后多少位(默认为6位)

  示例:
    "%10d" % 123    # '    123'(总共占10个字符,并右对齐)
	"%+010d" % 123    # '+000000123'
    "%-10d' % 123   # '123    '	
    "%10s" % "abc"  # '    abc'
	"%05d" % 123    # '00123'
    '%+05d' % 123   # '+0123'
	'%7.3f' % 3.1415926535   # '  3,142'
  
练习:
  输入三行文字,让这三行文字依次以20个字符的宽度右对齐显示
  如:
    请输入第一行:hello world
	请输入第二行:abcd
	请输入第三行:aaaaaaa
  打印结果如下:
                hello world
				       abcd
					aaaaaaa
   做完上题后思考:
     能否以最长的字符串的长度进行右对齐显示(左侧填充空格)
  


循环语句:
  whille 语句 
  for    语句 
  
问题:输入一个整数n,写程序打印如下n行文字:
   这是第一行
   这是第二行
   ...
   这是第n行
   
while语句:
  作用:
    根据一定条件,重复执行一条语句或多条语句
  语法:
    while 真值表达式:
	    语句块1(此部分语句可能会重复执行多次)
	else:
	    语句块2
	说明:
	  1.先执行真值表达式,得到布尔值True或False
	  2.如果真值表达式的值为True,则执行语句块1,然后再次返回到
	  第一步,重复进行测试真值表达式的值
	  3.如果真值表达式的值为False,则执行else子句部分的语句块2,
	  然后结束此while语句的执行
	    
		注:else子句部分可以省略(同if语句类似)
		
	示例见:
	  while.py
		
练习:
  1.输入三行文字,让这三行文字在一个方框内居中显示
  如输入:
         hello!
         I'm studing python 
         I like python!
  显示如下:
         +------------------+
         |       hello!    |
         |I'm studing python|
         |  I like python!	| 
		 +------------------+
  2.用while循环语句打印1-20的整数(可以打印多行)
  3.用while循环语句打印1-20的整数,打印在一行显示每个数字
    之间用一个空格分隔
    1 2 3 4 5 6 ... 18 19 20
  4.用while循环打印1-20的整数,每行打印5个,打印4行,如:
    1 2 3 4 5
    6 7 8 9 10
    ...
  5.输入一个整数n,打印一个宽度和高度都为n个字符的长方形	
	如: 
	  请输入:4
	打印:
	####
	#  #
	#  #
	####
	如:
	  请输入:6
	打印: 
	######
	#    #
	#    #
	#    #
	#    #
	######