博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python 基础 three day
阅读量:4682 次
发布时间:2019-06-09

本文共 4536 字,大约阅读时间需要 15 分钟。

本节主要内容:

      一. python基本数据类型有哪些?

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

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

        3. bool==>判断真假, True, Fals

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

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

        6. dict==> 字典, 保存键值对, 一样可以保存大量数据  {} 查找比较快.   key:value,一次存两个数据,一对一对存.

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

     二. 整数 (int)

           整数可以进行的操作:        bit_length(). 计算整数在内存中占用的二进制码的长度 

        

a = 1   # 0000  0001 (不要和编码混一起)print (a.bit_length())   # 求的有效长度a = 3   # 0000  0011  print(a.bit_length())

 

    三.布尔值 (bool)

      数字转换成 bool

   如果数字是0  结果是假(False)

   如果数字是非0  结果是真 (True)

     True 和 1 的效率问题,  1 的效率高.

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

  转换问题:

   str  => int               int(str)

   int   => str              str(int)

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

   bool => int             int(bool)  

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

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

   # True  =>   int  =>  1

   # False =>  int  => 0

比如:  print(int(True))      # True  相当于1   但  True 不是 1

 四.  字符串(str)

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

  空字符串是 False      非空字符串是  True suoyin 

   4.1  切片和索引 

      1. 索引: 字符串中的第几个字符      必须用[]

        索引语法     字符串[索引] 索引从 0 开始

       

#     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:step]

    start :  从xxx开始 

    end :   切到xxx为止  

    step:   步长

  步长: 如果是整数,则从左往右取, 如果是负数,则从右往左取,默认是1 

s2 = "python最牛B"print(s2[0:3])  # 从0获取到3. 不包含3. 结果: pytprint(s2[6:8])  # 结果 print(s2[6:9])  # 大是8. 但根据顾头不顾腚, 想要取到8必须给9print(s2[6:10])  # 如果右边已经过了大值. 相当于获取到后print(s2[4:])   # 如果想获取到后. 那么后一个值可以不给.print(s2[-1:-5])    # 从-1 获取到 -5 这样是获取不到任何结果的. 从-1向右数. 你怎么数也数不到-5print(s2[-5:-1])    # 牛b, 取到数据了. 但是. 顾头不顾腚. 怎么取后一个呢?print(s2[-5:])  # 什么都不写切到最后print(s2[:-1])  # 这个是取到倒数第一个print(s2[:])    # 全部切出来

跳着切

# 跳着取, 步长print(s2[1:5:2])    # 从第一个开始取, 取到第5个,每2个取1个, 结果: yh, 分析: 1:5=> ytho => yhprint(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

 

例子2s="abcdefghijklmn"print(s[0:7:2])  # 每两个切一个   得出 acegprint(s[1:5:3])  #  beprint(s[-8:-2])  #倒数也可以跳着切    得出  ghijklprint(s[8:1:-1])   #反着切

3.字符串相关操作方法

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

  ① 大小写转换

       .capitalize()     #首字母大写

       .title()              #标题,每个单词首字母大写,

                                 特殊字符,中文在这里算特殊字符

       .upper()          # 全部转换成大写字母

       .lower()          #全部转换成小写字母

       .swapcase()  # 大小写转换

  ② 居中 和 更改teb:

       .center()        # 拉长多少个字符, 由*进行填充     居中  

       .expandtabs()    #更改\t 变成8个空格

  ③ 去掉空格   strip

         .strip(xxx)    #去掉左右两边的xxx(默认参数为空格)   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

         .lstrip()        # 去掉左边空格    (  l  可以理解为left  左边)

         .rstrip()       # 去掉右边空格     ( r  可以理解为ringt  右边)

   ④ 替换  replace:

        str.replace(参数1, 参数2, 参数3)              替换:   把参数1替换成参数2,  参数3表示替换的次数,默认 mox(全部)

   ⑤ 切割   split:

        str.split(参数1 = 用什么来切,   参数2 = 切的次数 默认是-1 切到最后)     切割 :  用 参数1 把str切割 参数2 次,断开的字符串,组成一个列表, 同时丢失掉 参数1的字符串.

        切割完后的结果 是list 列表

        如果原字符串和刀一样,得到是由两个空字符的列表

        如果刀在原字符串中找不到切点,得到的还是原字符;

        如果是 空字符串, 就报错了;

        如果在开头或者结尾的时候 出现了你的刀,一定会出现空字符串

   ⑥ 格式化输出:

      

# 格式化输出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)

 

   ⑦ 

       .count   数数   

       .find   查找     如果你要查找的不存在,返回-1 如果存在  返回索引 

       .index  求索引的位置 如果找不到就报错

     ⑧ 条件判断:

       .startswith()       # 判断字符是否以xxx开头

       .endswith()        #判断字符是否以xxx结尾

       .isalnum()          #是否是字母和数字组成

       .isdgit()              #是否以数字组成 不识别小数点

       .isnumeric()      #是否是全部是数字, 这个比较屌.中文的都能识别

       .isalpha()          #是否全部都是字母

        len(变量名)      #判断字符有多长    (内置函数)

      

s18 = "我是你的眼, 我也是a"ret = len(s18)  # 计算字符串的长度print(ret) 注意: len()是python的内置函数. 所以访问方式也不一样. 你就记着len()和print()一样就行了

 

      判断是不是小数  看下面例子琢磨:

# 练习. 用算法判断某一个字符串是否是小数s17 = "-123.12"s17 = s17.replace("-", "")  # 替换掉负号if s17.isdigit():    print("是整数")else:    if s17.count(".") == 1 and not s17.startswith(".") and not s17.endswith("."):        print("不是小数")    else:        print("不是小数")

 

   !!! 迭代

      while循环  for循环

     for 变量 in 可迭代对象:

              pass 

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

  

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

    怎样去计算在字符串中有多少个数字呢?

 

# 练习, 计算在字符串"I am sylar, I'm 14 years old, I have 2 dogs!"s20 = "I am sylar, I'm 14 years old, I have 2 dogs!"count = 0for c in s20:    if c.isdigit():        count = count + 1print(count)

 

 

    

      

       

     

 

 

 

        

       

转载于:https://www.cnblogs.com/liuafan/p/9128710.html

你可能感兴趣的文章
Unity Technologies-提供全面的技术支持服务
查看>>
Console-算法[for,if,break]-五个好朋友分苹果
查看>>
ylb: SQL表的高级查询-子查询
查看>>
import 用法
查看>>
6月7 考试系统
查看>>
mysql 基本操作
查看>>
HTML5 and Websocket
查看>>
zTree async 动态参数处理
查看>>
Oracle学习之常见错误整理
查看>>
Android实例-处理隐藏输入法后不再显示问题(XE8+小米2)
查看>>
字符串反转(10)
查看>>
HTC Sensation G14开盒
查看>>
Buffer cache spillover: only buffers
查看>>
lock_sga引起的ksvcreate :process(m000) creation failed
查看>>
面向抽象/接口编程以及继承
查看>>
POJ 1704 Georgia and Bob
查看>>
数据库插入数据乱码问题
查看>>
Jquery属性获取——attr()与prop()
查看>>
OVER(PARTITION BY)函数用法
查看>>
uva-11995 - I Can Guess the Data Structure!(栈,优先队列,队列,水题)
查看>>