3.基本数据类型(int bool str)

基本数据类型

一.python基本数据类型

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

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

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

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

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

6. dict==> 字典, 保存键值对, ⼀样可以保存⼤量数据

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

二. 整数(int)

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

在python3中不存在long类型 整数可以进行的操作:

bit_length(). 计算整数在内存中占用的二进制码的长度

十进制 二进制 长度bit_lenght()
1 1 1
2 10 2
3 11 2
4 100 3
5 101 3
6 110 3
7 111 3
8 1000 4

 

三. 布尔值(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值转换成相应的"值"   

 四. 字符串(str) 

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

 切片和索引

1. 索引. 索引就是下标. 切记, 下标从0开始

s = "今天中吃胡萝卜"
print(s[3])  # 吃
print(s[2])  # 中
print(s[-2])  # 萝
print(s[-6])  # 天

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

语法: str[start: end] 

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

s = "中间的,你们为什么不说话.难受"
print(s[3:7]) #,你们为
print(s[5:9])#们为什么
print(s[-3:-7])#切不到东西
print(s[-7:-3])#么不说话
print(s[:6]) #中间的,你们
print(s[6:])#为什么不说话.难受
print(s[:])#中间的,你们为什么不说话.难受

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

切片语法: str[start:end:step]

start: 起始位置

end: 结束位置

step:步长

s = "abcdefghijklmn"
print(s[::2]) #acegikm
print(s[1:5:3]) #be
print(s[7:3]) #切不到什么
print(s[7:3:-1]) #hgfe
print(s[-1:-8:-2]) #nljh

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

回文题目

s = "黄山落叶松叶落山黄"
s2 = s[::-1]
if s == s2:
    print("是回文")
else:
    print("不是回文")

capitalize 首字母大写

s = "abcdefg"
s1= s.capitalize() #把首字母大写
print(s1)#Abcdefg

title 所有首字母大写

s = "alex sb dsb wusir bi1gsb"
s2 = s.title() #把所有的首字母都大写
print(s2)#Alex Sb Dsb Wusir Bi1Gsb

upper 所有字母大写

s = "alex sb dsb wusir bi1gsb"
s3 = s.upper() #所有字母都大写
print(s3)#ALEX SB DSB WUSIR BI1GSB

lower和casefold 所有字母小写

s = "Alex Is Not A Or B"
s5 = s.lower() #对欧洲的特殊字符识别不了
print(s5)#alex is not a or b
s6 = s.casefold() #支持特殊文字
print(s6)#alex is not a or b

s2 = "БBß"
s7 = s2.lower()
print(s7)#бbß
s8 = s2.casefold()
print(s8)#бbss

swapcase 大写变小写,小写变大写

s = "WuSir 昨天出去 Love 女生 呵呵"
s2 = s.swapcase() #大写变小写,小写变大写
print(s2)#wUsIR 昨天出去 lOVE 女生 呵呵
s = "alex"

center 居中左右填充

s = "alex"
s6 = s.center(10,"*")#文字居中左右填充
print(s6) #***alex*** 

格式化输出

name = "alex"
age = 18
hobby = "wusir"
print(f"领导叫{name},今年{age}岁,喜欢{hobby}")
print("领导叫{},今年{}岁,喜欢{}".format(name,age,hobby))
print("领导叫{n},今年{a}岁,喜欢{h}".format(n=name,a = age,h = hobby))
print("领导叫{0},今年{2}岁,喜欢{1}".format(name,age,hobby))

strip 去除左右空白

s = "\n\t alex hhh   123  "
s2 = s.strip()#去除字符串左右两边的空白字符
print(s2)

s = "bb aa bb cc dd bb"
s2 = s.strip("bb") #去除左右两边的bb
print(s2)

split 字符串切割

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

replace 字符替换

s = "       good alex good wusir good 大虾 good 胡辣汤     "
s8 = s.replace("大虾","大鱼") #文字的替换
print(s8)
s9 = s.replace(" ","")
print(s9)
s10 = s.replace("good","sb",2)
print(s10)

startswith和endswith 以什么开头和以什么结尾

name = input("请输入你的名字:").strip()
if name.startswith("钱"): #是否以它开头
    print("过来")
elif name.endswith("多"):#是否以它结尾
    print("过来")
else:
    print("走开")

count 统计元素个数

s = "alex is big sb"
print(s.count("i"))#统计个数

find 查找

s = "红烧猪蹄子"
print(s.find("烧")) #1
print(s.find("123")) #-1
print(s.index("烧")) #1
print(s.index("123")) #报错ValueError: substring not found

isalpha 判断是不是纯字母组成

s = "alexwusir"
print(s.isalpha()) #纯字母,不包含数字  True

isdigit 判断是不是数字组成

s = "123456789"
print(s.isdigit()) #纯数字,不包含其他字符   True

len 统计字符串长度

s = "我是周润发,我喜欢你"
print(len(s)) #10

s = input("请输入一句话:")
i = 0
while i < len(s): #计算字符串长度
    print(s[i])  #10
    i += 1

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

迭代

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

语法:

for 变量 in 可迭代对象:
      pass

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

s = "大家好,我是小钱,我来自长沙,现在在学习python"
#while循环
index = 0
while index < len(s):
    print(s[index])
    index = index + 1
#for循环
for i in s:
    print(i)

"""  
in有两种⽤用法:        
1. 在for中. 是把每一个元素获取到赋值给前⾯面的变量.        
2. 不在for中. 判断xxx是否出现在str中.
"""
print("python" in s) #判断python是否出现在字符串中

#统计数字的个数
m  = "I am sylar, I'm 14 years old, I have 2 dogs!"
count = 0 
for i in m:
    if i.isdigit():
        count += 1
print(count)
1. 循环
        while 条件:
            循环体(break, continue)
        循环的执行过程:
            执行到while的时候. 首先判断条件是否成立.如果成立. 执行循环体. 再一次判断条件.... 如果不成立. 直接跳出循环

            break 跳出当前本层循环
            continue 结束本次循环. 继续执行下一次循环

    2. 格式化输出
        %s 占位字符串(常用)
        %d 占位数字
        %f 占位浮点数

        f"{变量}"
    3. 运算符
        !=
        +=  累加   a += b  a = a + b

        and 并且, 左右两端同时为真. 结果才能是真
        or 或者, 左右两端有一个是真. 结果就是真
        not 非. 非真既假, 非假既真

        顺序: () => not => and => or

        x or y  =>  if x == 0 then y else x
        and和or相反

    4. 编码
        1. ascii   8bit   1byte  包含了 英文, 数字, 特殊字符, 特殊操作符
        2. gbk     16bit  2byte 主要包含的: 中文, 日文, 韩文, 繁体中文
        3. unicode 32bit  4byte 万国码
        4. utf-8
            英文: 8bit 1byte
            欧洲: 16bit 2byte
            中文: 24bit 3byte

二. 作业讲解

三. 今日主要内容
    1. 基本数据类型概况
        1, int 整数
        2. str 字符串
        3. bool 布尔值
        4. list 列表. 一般存放大量的数据 ["门神xxxx", "风扇哥xxxx", 元素]
        5. tuple 元组. 只读列表, 只能看啥也不能干. (元素, 元素)
        6. dict 字典. {"风扇哥":"王伟哲", "wlh": "王力宏"}
        7. set  集合 {"风扇哥", "wlh"}. 不重复
        8. bytes 一堆字节. 最小数据单元

    2. int类型的相关操作.
        数字没办法执行其他操作. 操作只有+-*/, //, %, **
        8bit => 1byte
        bit_length() 二进制长度

    3. bool类型的操作. 基本类型转换的问题
        bool类型没有操作.
        类型转换

        结论一: 想把xxx转化成yy类型. yy(xxx)
        结论二: 能够表示False的数据: 0, "", [], {}, set(), tuple(), None, False
    4. str 认识字符串(重点, 多)
        字符: 单一的文字符号
        字符按照固定的顺序连成串
        被' 或者" 或者''' 或者"""括起来的内容
        索引 编号, 顺序
            从0开始

        切片
            s[start:end:step]
                start:开始
                end: 结束  取不到02
                step: 步长, 控制方向. 每xx个取一个

        一大波操作.
        字符串是不可变的数据类型. 不论如何操作.对原来的字符串是不会有影响的
            1, upper() 转换成大写. 忽略大小写
            2, strip() 去掉左右两端的空白 空格, \t \n.  所有用户输入的内容都要去空白
            3, replace(old, new) 把old替换成new
            4, split() 字符串切割
            5, startswith() 判断是否以xxx开头
            6, find() 查找, 找不到返回-1
            7, isdigit() 判断是否是数字组成
            8, len() 求长度

        for循环遍历字符串
        for 变量 in 可迭代对象:
            循环体

        for c in s: # c: charactor(字符) s: string
            print(c)
大概内容  

 

作业

3.数据类型作业

posted @ 2019-02-24 14:11  等待の喵  阅读(755)  评论(0编辑  收藏  举报