每天一总结,今天学习的是数据类型及其使用方法与可变与不可变类型。

今天了解的数据类型有整型int,浮点型float,字符串类型str,布尔型bool,列表list。

整型int与浮点型float都属于数字类型,对于n=10整数赋值的变量类型就是int,m=10.11小数赋值的变量类型就是float。而布尔型bool一定程度上也可看作数字类型,res=True  ,  print(10.11+True) ==>11.11,True默认为1。作为数字类型,各类型可以相互转换。

a = 10b = 3.74c = Trueprint(int(a), int(b), int(c)) #10 3 1print(float(a), float(b), float(c))  #10.0 3.74 1.0print(bool(a), bool(b), bool(c))   #True True True    

字符串类型str,就是通过单引号、双引号、三引号包裹的数据。我们可以通过引号的嵌套,使内部不同的引号在不转义的情况下直接输出。

s2 = '你是"好学生"'print(s2)    #你是"好学生"

1.字符串str的常规使用方法:

1.1 字符串的索引取值: 字符串[index]。在[]中,若正向取值,从0编号;反向取值,从-1编号。

s1 = '123abc呵呵'print(id(s1))  # 2217572683576print(s1[0], id(s1[0]))  # 2217543167200t_s = '1'print(id(t_s))  # 2217543167200print(s1[5], s1[-3])# 取出c

1.2 字符串拼接

s2 = '你好's22 = '帅'ss2 = s2 + s22print(ss2, id(s2), id(s22), id(ss2)) #你好帅 1762726760584 1762725178624 1762725303920
a = 10b = "20"c = True# res = "1020True"res = "%s%s%s" % (a, b, c)  # 方法1print(res)res = str(a) + b + str(c)  # 方法2print(res)

1.3 字符串长度len

s3 = '12345'ln1 = s3.__len__()print(ln1) #5ln2 = len(s3)print(ln2) #5

1.4 字符串切片: 取子字符串 - [::] - [start_index:end_index:step]

s4 = '123abc呵呵'sub_s = s4[0:6:]print(sub_s)  # 123abcsub_s = s4[0:6:2]print(sub_s)  # 13bsub_s = s4[::-1]print(sub_s)  # 呵呵cba321sub_s = s4[-1:-6:-1]print(sub_s)  # 呵呵cba

1.5 成员运算:判断某字符串是否在该字符串中

s5 = '123abc呵呵'ss5 = '12a'print(ss5 in s5)  # Falseprint(ss5 not in s5)  # True

1.6 字符串循环

s6 = '123abc呵呵'for v in s5:    print(v)

2.字符串str重要方法

2.1 索引(目标字符串的索引位置) index

s1 = '123abc呵呵'print(s1.index('b'))  #4

2.2 去留白(默认去两端留白,也可以去指定字符) strip

s2 = '***好 * 的  ***'print(s2.strip('*'))  #好 * 的  |左边是有空格的

2.3 计算子字符串个数 count

s3 = '12312312'print(s3.count('123'))  #2

2.4 判断字符串是否是数字:只能判断正整数 isdigit

s4 = '123'print(s4.isdigit())  #True

2.5 大小写转换

s5 = "AbC def"print(s5.upper())  # 全大写ABC DEFprint(s5.lower())  # 全小写abc def

2.6 以某某开头或结尾

s6 = 'https://www.baidu.com'r1 = s6.startswith('https:')r2 = s6.startswith('http:')r3 = s6.endswith('com')r4 = s6.endswith('cn')if (r1 or r2) and (r3 or r4):    print('合法的链接')  #合法的链接else:    print('不合法的链接')  

2.7 替换

s7 = 'egon say: he is da shuai b,egon!egon!egon!'new_s7 = s7.replace('egon', 'Liu某')  # 默认替换所有print(new_s7)  #Liu某 say: he is da shuai b,Liu某!Liu某!Liu某!new_s7 = s7.replace('egon', 'Liu某', 1)  # 替换一次print(new_s7)  #Liu某 say: he is da shuai b,egon!egon!egon!

2.8格式化

s8 = 'name:{},age:{}'print(s8.format('Owen', 18))  # 默认按位置print('name:{1},age:{1}, height:{1}'.format('Owen', 18))  # 标注位置,一个值可以多次利用print('name:{n},age:{a}, height:{a}'.format(a=18, n="Zero"))  # 指名道姓

当然字符串str还有些只需了解的方法:find,rfind,center,ljust,zfill,swapcase等等,在实际情况需要的时候可以再学习。

列表类型,list。

ls = [3, 1, 2]  print(ls)ls = list([3, 1, 2])  # 本质print(ls)
list嵌套:ls = [3, 1, [3, 2, [1]]]在list列表中,可以存放多个值,什么类型都可以存放。

1.列表的常规操作:

1.1 字符串的索引取值: 列表名[index]。

1.2 列表运算:得到的是新的list。

1.3 list长度len

1.4 切片:   [::]

[start_index:end_index:step]

1.5 成员运算:in

1.6 循环:在for循环中,只打印数字类型的数据。

以上各种方法可以与字符串取值看作一致。

2.列表list的重要方法:

2.1查 print

2.2增 append()末尾增,insert()任意index前增

ls = [1, 2, 3]
ls.append(0)  # 末尾增print(ls)ls.insert(1, 666)  # 任意index前增print(ls)ls.insert(len(ls), 888)  # insert实行末尾增print(ls)

2.3改 如:ls[1]=66666,print(ls)

2.4删 remove();  pop() #默认从末尾删,并返回删除的值;pop(1) #从指定索引删除,并返回删除的值。

可变与不改变类型:可变类型:值改变,但是id不变,证明就是在改变原值,是可变类型。不可变类型:值改变,但是id也跟着变,证明是产生了新的值,是不可变类型。因此,我们可以区分今天的各种数据类型。数字类型,可以存放一个值,属于不可变类型。字符串类型,虽然一个字符串里可以有很多的字符,但是字符串存放的是一个值,其是有序存储的,属于不可变类型。列表类型,可以存放多个值,存储也是有序的,但是属于可变类型。

初学python之路-day05的更多相关文章

  1. 初学python之路-day12

    本篇补上字符串的比较:按照从左往右比较每一个字符,通过字符对应的ascii进行比较 一.函数默认值的细节 # 如果函数的默认参数的默认值为变量,在所属函数定义阶段一执行就被确定为当时变量存放的值 a ...

  2. 初学python之路-day10

    基础部分先告一段落,今天开始学习函数. 一.函数:完成 特定 功能的代码块,作为一个整体,对其进行特定的命名,该名字就代表函数         -- 现实中:很多问题要通过一些工具进行处理 => ...

  3. 初学python之路-day08前期总结

    # 1# 计算机原理:控制器 运算器 存储器 input设备 output设备 IO流# 三大核心:CPU 内存 硬盘 # 内存分布:栈区 与 堆区# 如二进制与十进制的转换,如1111转成十进制为1 ...

  4. 初学python之路-day08

    #学习了编码后,还要了解三种字符串.# 一.# 普通字符串:u''以字符作为输出单位,# print(u'abc') # 用于显示abc# # 二进制字符串:b'' 二进制字符串以字节作为输出单位# ...

  5. 初学python之路-day07-字符编码

    今天的博客主要关于字符编码,并对前几天学习的数据类型做些总结. 学习字符编码的目的:解决乱码问题. 应用程序打开文本文件的三步骤  1.打开应用程序  2.将数据加载到内存中  3.cpu将内存中的数 ...

  6. 初学python之路-day04

    每天一篇总结,今天学习的是有关于流程控制的知识. 流程控制,顾名思义,在计算机运行中,程序是被某种控制方式按照某种流程或者规律来执行的.而python程序的运行,肯定也是按照某种规律在执行.这些规律可 ...

  7. 初学python之路-day03

    我在前面的文章提到了变量的概念,这里详细介绍下变量的命名.变量名,只能是字母.数字及下划线 "_" 任意组成,而且不能以数字开头.在命名变量时,尽量避免与系统关键词重名,如:'an ...

  8. 初学python之路-day02

    python,诞生于1989年的圣诞,Guido van Rossum为了打发无聊,因此发明了python,并且开放了其源代码,使得这门语言在随后的几十年的发展的越来越广.现今,2.x版本已经在2.7 ...

  9. 初学python之路-day01

    第一天学习python,先了解到了进制之间的转换关系. 如二进制与十进制的转换,如1111转成十进制为15,1111从左向右可看出2^3+2^2+2^1+2^0为8+4+2+1=15.记住前8位1的二 ...

随机推荐

  1. 【转】shell脚本中如何传入参数

    (1)直接用$1,$2取传入的参数vim /root/test.sh#!/bin/bashif [ $1 == "start" ]  then     echo "do ...

  2. mysql自动断开该连接解决方案

    mysql连接的空闲时间超过8小时后 MySQL自动断开该连接解决方案 作者: MySQL 的默认设置下,当一个连接的空闲时间超过8小时后,MySQL 就会断开该连接,而 c3p0 连接池则以为该被断 ...

  3. OpenCV__elemSize

    elemSize 矩阵一个元素占用的字节数,例如:type是CV_16SC3,那么elemSize = 3 * 16 / 8 = 6 bytes elemSize1 矩阵元素一个通道占用的字节数,例如 ...

  4. javascript高级排序算法之快速排序(快排)

    javascript高级排序算法之快速排序(快排)我们之前讨论了javascript基本排序算法 冒泡排序 选择排序 插入排序 简单复习: 冒泡排序: 比较相邻的两个元素,如果前一个比后一个大,则交换 ...

  5. Shell命令-文件及内容处理之split、paste

    文件及内容处理 - split.paste 1. split:分割文件为不同的小片段 split命令的功能说明 split 命令用于将一个文件分割成数个.该指令将大文件分割成较小的文件,在默认情况下将 ...

  6. Comparable vs Comparator

    Comparable interface can be used to provide single way of sorting whereas Comparator interface is us ...

  7. Nginx ACCESS阶段 Satisfy 指令

    L:60 这里一定要记住 return 指令所对应的阶段 早与access 因此如果location 有return 的话 那么 deny可能都会失效

  8. git仓库构建小记

    1.新建 .git 文件夹 约定的文件目录下,新建 .git 文件夹 mkdir test.git 2.初始化服务端仓库 git init --bare test.git 此时进入 test.git ...

  9. edusoho -A5: ApiBundle UML

    edusoho -A5:  ApiBundle UML

  10. AtCoder Grand Contest 012

    AtCoder Grand Contest 012 A - AtCoder Group Contest 翻译 有\(3n\)个人,每一个人有一个强大值(看我的假翻译),每三个人可以分成一组,一组的强大 ...