pythonday3

2018-07-16 02:51:08来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

一,编码

  1.最早计算机编码为ASCII,美国人创造的,128个码位,2**7,在此基础上加了一位,2**8,包含英文字母(大小写),数字,标点等特殊字符,首位0

   一个ASCII码为8位,一个字节.

  2.GBK  国标码,16位,2个字节(双字节字符)

  3.unicod  万国码, ucs-2 16位,2个字节; ucs-4 32位,4个字节,utf-8 

  4. utf-8  英文:8 bit  1个字节;欧州文字:16bit  2个字节; 中文: 24bit  3个字节

  5.单位换算:8bit = 1byte  1024byte = 1kb  1024kb = 1mb  1024mb = 1gb

        1024gb = 1tb  1024tb = 1pb

二,基本数据类型

 1,

  1> int ==> 整数. 主要用来进行数学运算

  2>str ==> 字符串串, 可以保存少量量数据并进?行行相应的操作

  3> bool==>判断真假, True, False

  4>list==> 存储大量量数据.用[ ]表示

  5> tuple=> 元组, 不可以发生改变 用( )表示

  6>dict==> 字典, 保存键值对, 一样可以保存大量量数据

  7>set==> 集合, 保存大量量数据. 不可以重复. 其实就是不保存value的dict

   2,整数(int)    

  在python3中所有的整数都是int类型. 但在python2中如果数据量量比较?大. 会使?用long类型.   在python3中不存在long类型

 3,布尔值(bool)  

  取值只有True, False. bool值没有操作.    

  转换问题:

        str => int       int(str)

       int => str       str(int)

       int => bool    bool(int).  0是False 非0是True

       bool=>int      int(bool)   True是1, False是0

       str => bool    bool(str)  空字符串串是False,  不空是True

       bool => str    str(bool)  把bool值转换成相应的"值" 

 4,字符串(str)

       把字符连成串. 在python中用', ", ''', """引起来的内容被称为字符串. 

  1> 索引. 索引就是下标. 切记, 下标从0开始时从左向右,从-1开始时从右向左 

  0123456 7 8

  s1 = "python牛B"

  print(s1[0]) # 获取第0个

  print(s1[1])

  print(s1[2])

  print(s1[3])

  print(s1[4])

  print(s1[5])

  print(s1[6])

  print(s1[7])

  print(s1[8])

  # print(s1[9])    # 没有9, 越界了了. 会报错

  print(s1[-1])   # -1 表示倒数.

  print(s1[-2])   # 倒数第二个

 2> 切片, 我们可以使用下标来截取部分字符串的内容

    语法: str[start: end]

      规则: 顾头不顾腚, 从start开始截取. 截取到end位置. 但不包括end

  s2 = "python?牛B"
  print(s2[0:3]) # 从0获取到3. 不不包含3. 结果: pyt

  print(s2[6:8]) # 结果牛

  print(s2[6:9]) # ?大是8. 但根据顾头不不顾腚, 想要取到8必须给9

  print(s2[6:10]) # 如果右边已经过了了大值. 相当于获取到后

  print(s2[4:]) # 如果想获取到后. 那么后一个值可以不不给.

  print(s2[-1:-5]) # 从-1 获取到 -5 这样是获取不不到任何结果的. 从-1向右数. 你怎么数        也数不到-5

  print(s2[-5:-1]) # 牛b, 取到数据了了. 但是. 顾头不不顾腚. 怎么取后?一个呢?

  print(s2[-5:]) # 什什么都不不写就是后了了

  print(s2[:-1]) # 这个是取到倒数第一个

  print(s2[:]) # 原样输出

 3>跳着截取

  # 跳着取, 步长

  print(s2[1:5:2]) # 从第一个开始取, 取到第5个,每2个取1个, 结果: yh, 分析: 1:5=> ytho => yh     print(s2[:5:2]) # 从头开始到第五个. 每两个取一个

  print(s2[4::2]) # 从4开始取到后. 每两个取一个

  print(s2[-5::2]) # 从-5取到后.每两个取一个

  print(s2[-1:-5]) # -1:-5什什么都没有. 因为是从左往右获取的.

  print(s2[-1:-5:-1]) # 步长是-1. 这时就从右往左取值了

  print(s2[-5::-3]) # 从倒数第5个开始. 到开始. 每3个取一个, 结果oy

  步长: 如果是整数, 则从左往右取. 如果是负数. 则从右往左取. 默认是1 切片语法:

  str[start:end:step]

  start: 起始位置

  end: 结束位置

  step:步长

 5.字符串的相关操作方法 

  字符串是不可变的对象, 所以任何操作对原字符串是不会有任何影响的

  1>大小写转换

  

s1.capitalize()
 print(s1)   # 输出发现并没有任何的变化. 因为这里的字符串本身是不会发生改变的. 需要我们 重新获取 
ret1 = s1.capitalize()
 print(ret1) #大小写相互转换

  

ret = s1.lower()    # 全部转换成小写
 print(ret
  ret = s1.upper()     # 全部转换成大写
 print(ret)

   2> 每个被特殊字符隔开的字母首字母大写:

s3 = "alex eggon,taibai*yinwang_麻花藤"
 ret = s3.title()       # Alex Eggon,Taibai*Yinwang_麻花藤
 print(ret) 
# 中文也算是特殊字符
 s4 = "alex老男孩wusir"     # Alex老男孩Wusir
 print(s4.title())

 3>去空格 

s7 = "   alex wusir   haha "
 ret = s7.strip()    # 去掉左右两端的空格
 print(ret)
 ret = s7.lstrip()   # 去掉左边空格
 print(ret)
 ret = s7.rstrip()   # 去掉右边空格
 print(ret) 

  4>字符串替换

 

s8 = "sylar_alex_taibai_wusir_eggon"
 ret = s8.replace('alex', '金角大王')    # 把alex替换成金角大王
 print(s8)   # sylar_alex_taibai_wusir_eggon 切记, 字符串是不可变对象. 所有操作都 是产生新字符串返回
 print(ret)  # sylar_金角大王_taibai_wusir_eggon
 ret = s8.replace('i', 'SB', 2)     # 把i替换成SB, 替换2个
 print(ret)  # sylar_alex_taSBbaSB_wusir_eggon 

  5>字符串切割

s9 = "alex,wusir,sylar,taibai,eggon"
 lst = s9.split(",")     # 字符串串切割, 根据,进行切割
 print(lst) 

   6>格式化输出

  

# 格式化输出
 s12 = "我叫%s, 今年%d岁了了, 我喜欢%s" % ('sylar', 18, '周杰伦')  # 之前的写法
 print(s12)
 s12 = "我叫{}, 今年年{}岁了了, 我喜欢{}".format("周杰伦", 28, "周润发")    # 按位置格式化
 print(s12)
 s12 = "我叫{0}, 今年年{2}岁了了, 我喜欢{1}".format("周杰伦", "周润发", 28)     # 指定位置
 print(s12)
 s12 = "我叫{name}, 今年年{age}岁了了, 我喜欢{singer}".format(name="周杰伦", singer="周润 发", age=28)     # 指定关键字
 print(s12)

   7>查找

s13 = "我叫sylar, 我喜欢python, java, c等编程语言." 
ret1 = s13.startswith("sylar")   # 判断是否以sylar开头 
print(ret1) 
ret2 = s13.startswith("我叫sylar")    # 判断是否以我叫sylar开头 print(ret2)
ret3 = s13.endswith("语?言")   # 是否以'语?言'结尾 
print(ret3) ret4 = s13.endswith("语?言.")  # 是否以'语言.'结尾 print(ret4)
ret7 = s13.count("a")   # 查找"a"出现的次数 
print(ret7)
ret5 = s13.find("sylar")    # 查找'sylar'出现的位置 
print(ret5)
ret6 = s13.find("tory")     # 查找'tory'的位置, 如果没有返回-1 print(ret6)
ret7 = s13.find("a", 8, 22)  # 切?片找 
print(ret7)
ret8 = s13.index("sylar")   # 求索引位置. 注意. 如果找不不到索引. 程序会报错 
print(ret8) 

   8>条件判断

# 条件判断 
s14 = "123.16" 
s15 = "abc" 
s16 = "_abc!@" # 是否由字母和数字组成
print(s14.isalnum()) 
print(s15.isalnum()) 
print(s16.isalnum()) # 是否由字母组成 
print(s14.isalpha()) 
print(s15.isalpha())
print(s16.isalpha()) # 是否由数字组成, 不包括小数点 
print(s14.isdigit()) 
print(s14.isdecimal()) 
print(s14.isnumeric())  # 这个比较牛B. 中文都识别. 
print(s15.isdigit()) 
print(s16.isdigit())

   9>计算字符串长度

s18 = "我是你的眼, 我也是a" 
ret = len(s18)  # 计算字符串的长度 
print(ret) 

  注意: len()是python的内置函数. 所以访问方式也不一样. 你就记着len()和print()一样就行 了

   10>迭代

  我们可以使用for循环来便利(获取)字符串中的每一个字符            

  语法:        for 变量 in 可迭代对象:

   可迭代对象: 可以一个一个往外取值的对象 

s19 = "大家好, 我是VUE, 前端的小朋友们. 你们好么?" # 用while循环 index = 0 
while index < len(s19):
    print(s19[index])   # 利利?用索引切?片来完成字符的查找
    index = index + 1# for循环, 把s19中的每一个字符拿出来赋值给前面c
for c in s19:
    print(c)
'''    in有两种?用法:
        1. 在for中. 是把每?一个元素获取到赋值给前?面的变量量.
        2. 不不在for中. 判断xxx是否出现在str中. '''
print('VUE' in s19)

 

 

 

 

 

 

 

 

 

  

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:pythonday6

下一篇:pythonday4