格式化输出

   %为占位符

   在下面代码中可以看出,%s代表着字符占位符,此外%d代表数字占位符

name = input('请输入姓名:')
age = input("请输入年龄:")
hobby = input("请输入爱好:")
msg = '''
---------info of %s-----------
Name:%s
Age:%s
Hobby:%s
''' %(name,name,age,hobby)
print(msg)
View Code

    要注意的是,Input的输入全是字符串,要想把字符串转化为数字,用int(),()里写想要转换的字符串即可,如:

Age = input(">>>")
age = int(Age)
print(type(age))
>>> <class 'int'>

   既然%为占位符,那想输出10%时怎么办呢?这时只用输入两个%%就行了,如

msg = "我是%s,年龄%d,目前学习进度为80%%"%('haohao',22)
print(msg)
>>> 我是haohao,年龄22,目前学习进度为80%%

   既然写到输出了,顺便写下format(),format()的三种形式:

name = input('请输入姓名:')
age = input("请输入年龄:")
hobby = input("请输入爱好:")
#第一种方法,用{}做占位符
msg1 = '''
---------info of {}-----------
Name:{}
Age:{}
Hobby:{}
'''.format(name,name,age,hobby)
print(msg1)
#第二种方法,用{1}、{2}、、、编号更加方便
msg2 = '''
---------info of {0}-----------
Name:{0}
Age:{1}
Hobby:{2}
'''.format(name,age,hobby)
print(msg2)
#第三种方法,用{_name}、{_age}、、、这样在定义时更随意
msg3 = '''
---------info of {_name}-----------
Name:{_name}
Age:{_age}
Hobby:{_hobby}
'''.format(_age = age,_name = name,_hobby = hobby)
print(msg3)
View Code

 初识编码

   Ascii码 起初是7位,设计时经考虑设计了8位用于扩展,但第8位全是0,一个Ascii码占一个字节

   unicode码 起初设计为所有字符都为16位,也就是两个字节,经升级后变为4个字节

   utf-8 英文、数字、特殊符号一个字节    ;  欧洲 2个字节  ;中文 3个字节

   1024byte == 1kb      1024kb == 1MB      1024MB == 1GB    1024GB == 1TB

运算符

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

   比较运算符  >  、  <  、  !=   、<>   、  ==    、  >=   、  <=   

   赋值运算符  +=  、 -= 、 *=   、/=   、%=     、**=     、   //=

   逻辑运算符  and  、 or  、 not   三者优先级关系为  ()>not > and > or

  判断下列两组逻辑运算输出结果:

print(3>4 or 4<3 and 1==1)
print(1 < 2 and 3 < 4 or 1>2 )
print(2 > 1 and 3 < 4 or 4 > 5 and 2 < 1)
print(1 > 2 and 3 < 4 or 4 > 5 and 2 > 1 or 9 < 8)
print(1 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6)
print(not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6)
View Code
print(3>4 or 4<3 and 1==1)
print(1 < 2 and 3 < 4 or 1>2 )
print(2 > 1 and 3 < 4 or 4 > 5 and 2 < 1)
print(1 > 2 and 3 < 4 or 4 > 5 and 2 > 1 or 9 < 8)
print(1 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6)
print(not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6)
View Code

   

数据类型

  int :用于计算   eg:1,2,3    i.bit_length()   转换成二进制需要的位数      int(    1)=1 空格无效

    int -->str   str(123)                           ;               int -->bool   bool(0)=False  

  bool :用于判断语句  True  False

    bool --> int   int(True)=1     int(False)=0       ; bool -->str      str(False)='False'   

  str :字符串,存储少量数据进行操作  'asfaas'    

    str --> int   int('123')=123  only number OK   ;   str -->bool    s = ''   bool(s)=False   only str is empty ;others will turn to True ;  str -->list  slipt()  ;

  list:列表 ,用来存储大量数据   [2,3,4,'as','dsf',[2,5,6],'dd']

    list --> str   join()

  tuple:元组 ,只读列表  (1,2,3,'22',[3,4,5],('a',2,4),8)   

  dict : 字典 ,存储一些有关联的数据  {'name':'haoaho','age':16}

  集合:{1,5,6,'alex2','ss'}

字符串操作

  索引与切片

s = 'asdGHKJsdf'
# 索引 字符串编号从0开始计数
s1 = s[0]
print(s1)
# 切片 'asdG'
s2 = s[0:4]  # 注意切片时顾首不顾尾
print(s2)
# 取全部字符串
s3 = s[:]
s4 = s[0:]
print(s3,s4)
# 切片时加入步长
s5 = s[0::2]  # 隔一个取出一个字符
print(s5)
# 切片时可以倒着取,注意倒着取时也是顾首不顾尾,但首尾已经互换
s6 = s[-1:-3:-1]  # s[-1]代表s的最后一个字符
print(s6)
View Code

  capitalize   首字母大写  

s = 'haohao shuai'
s1 = s.capitalize()
print(s1)

  upper全部大写   lower全部小写   注:对字符串中的数字无效,可放心使用

s = 'haohao Shuai'
s2 = s.upper()
s3 = s.lower()
print(s2,s3)

  swapcase    大小写转换 

s = 'haohao Shuai'
s4 = s.swapcase()
print(s4)

  title  被特殊字符隔开的字符首字母大写     注:数字也算特殊字符

s = 'hao;hao1shuai'
s5 = s.title()
print(s5)

  center    默认居中,空白填充      注:括号里的参数20为填充的宽度,+为填充的符号   

s = 'haohao Shuai'
s6 = s.center(20,'+')
print(s6)

  expandatabs 若字符串中有\t,在\t前的字符补足8位或16位  

s = 'haohao\tShuai'
s7 = s.expandtabs()
print(s7)

  startswith('$',m,n) / endswith('$',m,n)  是否以 '$ '为开头/结尾,True/False  startswith/endswith   (可以切片,顾头不顾尾)

s = 'haohao Shuai'
s8 = s.startswith('h')
s9 = s.endswith('i')
print(s8,s9)
s8_1 = s.startswith('h',3,6)
s9_1 = s.endswith('a',-5,-1)
print(s8_1,s9_1)

  find('$')     index('$')    返回   ' $' 的索引(下标)  find  找到时返回索引,找不到返回-1        ;   index  找到时返回索引,找不到报错

s = 'haohao Shuai'
s10 = s.find('u')
s11 = s.index('u')
print(s10,s11)

  strip    删除字符串中的空格   (也可以自定义删除字符串中的什么字符)   注:从两边开始删除,碰到非删除元素时停止。

     另有     lstrip  从左边开始删除;rstrip  从右边开始删除     ps:   '\n'代表转行

s = ' +haohao Shuai '
s12 = s.strip()
s12_1 = s.strip(' +')
print(s12,'\n',s12_1)

  count('$',m,n)  计算字符 ' $'在字符串中出现了多少次   (可以切片,顾头不顾尾)

s = 'haohao Shuai'
s13 = s.count('h')
s13_1 = s.count('h',0,5)
print(s13,s13_1)

  split('$',n)   重点哦   以  ' $'  为界分割字符串,不写默认空格  可以把 str 分割成  list   还可以确认分割n次

s = 'hao+hao Shuai'
s14 = s.split()
s14_1 = s.split('+',1)
print(s14,s14_1)

  replace('a','b',n)  把字符串中 ' a' 全部替换为 ' b',替换n次

s = 'haohao Shuai'
s15 = s.replace('hao','h',1)
print(s15)

  isalnum 判断字符串是否由字母数字组成   ; isalpha 判断字符串是否由字母组成 ;isdigit  判断字符串是否由数字组成

s = 'haohaoShuai'
s16 = s.isalnum()
print(s16)

  公共方法:

  a=len(s)  s有几个字符(长度)

列表的增删改查

  列表的增

                 ps:增后还是原列表,应该打印原列表

  append( '$' ) 在列表的最后增加 '$'

  insert( n , '$' ) 在列表的第n个位置增加 '$'

  extend( [1,2,3]) 在列表的最后迭代增加(分别增加每个元素)

li = [1,2,'haohao',[3,4,5,'xingcing'],'huahua','qiange']
li.append('anshao')
print(li)
li.insert(2,3)
print(li)
li.extend([1,2,'fengla'])
print(li)
li.extend('haha')
print(li)

  列表的删  

  s = pop(n)  删除列表第n个元素(从0开始),返回值为删掉的元素,不写索引则默认删除最后一个元素

  remove('a')  删除列表中的  'a'

  clear   清空列表

  del li 删除列表     del li[2:] 可以切片删除

li = [1,2,'haohao',[3,4,5,'xingcing'],'huahua','qiange']
li.pop(-1)
print(li)
li[3].remove(3)
print(li)
li[3].clear()
print(li)
del li[0:2]
print(li)

  列表的改

  直接赋值法 

li = [1,2,'haohao',[3,4,5,'xingcing'],'huahua','qiange']
li.[2] = 'hh'
print(li)

  切片迭代填充   ps:把切片的删掉,进行迭代填充

li = [1,2,'haohao',[3,4,5,'xingcing'],'huahua','qiange']
li[0:1] = 'anshao'
print(li)

  列表的查

    同字符串 li[0]=.....

  列表的排序

li = [1,4,6,3,5,2]
#列表反转
li.reverse()
print(li)
#列表的排序 若是字母,则按照ASCII码排序
li.sort()
print(li)
#倒序排序
li.sort(reverse = True)
print(li)

  列表的嵌套

li = ['haohao','anshao',['qiange','huahua'],'xinghui']
print(li[2][1])
li[2][1]=li[2][1].upper()
print(li)

  公共方法:

    l = len(li)    列表长度(元素个数)

    li.count('a')   'a'出现在列表中的次数  可以切片

    列表的索引only  index()

    join   可以把列表转化为字符串    ps:不能对int类型使用

li = ['haohao','xingcing','huahua','qiange']
s = ",".join(li)
print(s)

    

 

posted on 2018-10-08 21:32  幸福的小耗子  阅读(217)  评论(0编辑  收藏  举报