初学python之路-day05
每天一总结,今天学习的是数据类型及其使用方法与可变与不可变类型。
今天了解的数据类型有整型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的更多相关文章
- 初学python之路-day12
本篇补上字符串的比较:按照从左往右比较每一个字符,通过字符对应的ascii进行比较 一.函数默认值的细节 # 如果函数的默认参数的默认值为变量,在所属函数定义阶段一执行就被确定为当时变量存放的值 a ...
- 初学python之路-day10
基础部分先告一段落,今天开始学习函数. 一.函数:完成 特定 功能的代码块,作为一个整体,对其进行特定的命名,该名字就代表函数 -- 现实中:很多问题要通过一些工具进行处理 => ...
- 初学python之路-day08前期总结
# 1# 计算机原理:控制器 运算器 存储器 input设备 output设备 IO流# 三大核心:CPU 内存 硬盘 # 内存分布:栈区 与 堆区# 如二进制与十进制的转换,如1111转成十进制为1 ...
- 初学python之路-day08
#学习了编码后,还要了解三种字符串.# 一.# 普通字符串:u''以字符作为输出单位,# print(u'abc') # 用于显示abc# # 二进制字符串:b'' 二进制字符串以字节作为输出单位# ...
- 初学python之路-day07-字符编码
今天的博客主要关于字符编码,并对前几天学习的数据类型做些总结. 学习字符编码的目的:解决乱码问题. 应用程序打开文本文件的三步骤 1.打开应用程序 2.将数据加载到内存中 3.cpu将内存中的数 ...
- 初学python之路-day04
每天一篇总结,今天学习的是有关于流程控制的知识. 流程控制,顾名思义,在计算机运行中,程序是被某种控制方式按照某种流程或者规律来执行的.而python程序的运行,肯定也是按照某种规律在执行.这些规律可 ...
- 初学python之路-day03
我在前面的文章提到了变量的概念,这里详细介绍下变量的命名.变量名,只能是字母.数字及下划线 "_" 任意组成,而且不能以数字开头.在命名变量时,尽量避免与系统关键词重名,如:'an ...
- 初学python之路-day02
python,诞生于1989年的圣诞,Guido van Rossum为了打发无聊,因此发明了python,并且开放了其源代码,使得这门语言在随后的几十年的发展的越来越广.现今,2.x版本已经在2.7 ...
- 初学python之路-day01
第一天学习python,先了解到了进制之间的转换关系. 如二进制与十进制的转换,如1111转成十进制为15,1111从左向右可看出2^3+2^2+2^1+2^0为8+4+2+1=15.记住前8位1的二 ...
随机推荐
- es6箭头函数 this 指向问题
es5中 this 的指向 var factory = function(){ this.a = 'a'; this.b = 'b'; this.c = { a:'a+', b:function(){ ...
- 控制结构(4): 局部化(localization)
// 上一篇:状态机(state machine) // 下一篇:必经之地(using) 基于语言提供的基本控制结构,更好地组织和表达程序,需要良好的控制结构. 前情回顾 上一次,我们说到状态机结构( ...
- redis cli命令
redis安装后,在src和/usr/local/bin下有几个以redis开头的可执行文件,称为redis shell,这些可执行文件可做很多事情. 可执行文件 作用 redis-server 启 ...
- [转帖]CPU Cache 机制以及 Cache miss
CPU Cache 机制以及 Cache miss https://www.cnblogs.com/jokerjason/p/10711022.html CPU体系结构之cache小结 1.What ...
- DAY15、模块
一.函数的补充 1.函数回调: 提前在另一个函数中写出函数的调用,再根据实际的需求去考虑函数体的实现 def download(fn=None): print('开始下载') my_sleep(1) ...
- Tensorflow调试Bug解决办法记录
1.ascii' codec can't encode characters in position 0-4: ordinal not in range(128) 原因是python2.X默认的编码是 ...
- 前端js区域上下拖拽
先说说需求吧,网页内又上下两个区域,需要做到的功能是,第一个区域A底部的边可以进行拖拽使得区域变大或变小,同时第二个区域B跟着拖动的变化进行自适应. 思路: 1.使用一个假的div定义为那条可进行拖拽 ...
- [BZOJ 2285] [SDOI 2011] 保密
Description 传送门 Solution 这道题的最大难点在于读懂题意(雾 分数规划求出 \(n\) 到 \(1\cdots n_1\) 每个点的最小 \(\sum\frac{t_i}{s_i ...
- 数据分析---《Python for Data Analysis》学习笔记【04】
<Python for Data Analysis>一书由Wes Mckinney所著,中文译名是<利用Python进行数据分析>.这里记录一下学习过程,其中有些方法和书中不同 ...
- CF809E Surprise me!(莫比乌斯反演+Dp(乱搞?))
题目大意: 给你一棵树,树上的点编号为\(1-n\).选两个点\(i.j\),能得到的得分是\(\phi(a_i*a_j)*dis(i,j)\),其中\(dis(i,j)\)表示\(a\)到\(b\) ...