python全栈开发 * 03 基本数据类型 * 180601
python基本数据类型 ( int , bool , str )
一 python基本数据类型
(一)int ==> 整数.进行数学运算
(二)str ==> 字符串.可保留少量数据并进行相应操作
(三)bool ==> 判断真假.True,False
(四)list ==> 存储大量数据.用[ ]表示
(五)tuple==> 元组.不可以发生改变用()表示
(六)dict ==> 字典.保存键值对,一样可以保存大量数据
(七)set ==> 集合.保存大量数据.不可以重复,其实就是不保存value的dict
二 整数( int )
在python3中所有的整数都是int类型. 但在python2中如果数据量比较大. 会使用long类型. 在python3中不存在long类型
整数可以进行的操作:
bit_length(). 计算整数在内存中占用的二进制码的长度
十进制: 1 2 3 4 5 6 7 8
二进制: 1 10 11 100 101 110 111 1000
长度bit_length(): 1 2 2 3 3 3 3 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 "开始.
# 0 1 2 3 4 5 6 7
s1 = "p y t h o n 最 牛"
print(s1[0]) # 获取第 0 个 ( 0,1,2,3,4,5,6,7 ) 都可以获取.
print(s1[8]) # 没有8,获取不了,会报错
print(s1[-1]) # -1 表示倒数
print(s1[-2]) # -2 表示倒数第二个
2.切片. 我们可以使用下标来截取部分字符串的内容
语法 : str[start:end:step] (起始, 结束,步长)
规则 : 顾头不顾尾,从start开始截取.截取到end位置,但不包括end.
# 0 1 2 3 4 5 6 78
s2 = "p y t h o n 最 牛B"
.==> pyt
.
]) # 如果右边已经过了最大值,相当于获取到最后.
:]) # 如果想获取到最后,最后一个值可以不给.
print(s2[-1:-5]) # 从 -1 取到 -5 ,这样是获取不到结果的,从-1向右数,数不到-5.
print(s2[-5:-1]) # 这样能取到数据
print(s2[-5:]) # 什么都不写就能取到最后一位
print(s2[:-1]) # 取到倒数第一个数
print(s2[:]) # 原样输出
跳着截取
print(s2[个开始取,取到第个,每个取个,结果:yh,1:5=>ytho=>yh.
[个,每两个取一个.
[4::2] # 从第四个取到最后,每两个取一个.
[-5::2] # 从-5取到最后,每两位取一个.
[-1:-5] # 什么都没有, (从左往右获取)
[-1:-5:-1] # 步长是-1,这时就是从右往左取值了.
[-5::-3] # 从第-5个开始,到最开始,每3个取1个,结果:oy
步长 :
如果是整数,则从左往右取,如果是负数,则从右往左取,默认是1.
(二 )字符串的相关操作方法
切记 : 字符串是不可变的对象,所以任何操作对原字符串是不会有任何影响的
1.大小写转来转去
s1.capitalize()
print(s1) # 输出发现并并没有任何变化,因为字符串本身是不会发生变化的,需要重新获取.
ret1=s1.cpapitalize() # 首字母变大
print(ret1)
ret2=s1lower() # 全部换小写
print(ret2)
ret3=s1upper() # 全部换大写
print(ret3)
应用大写:
verify_code="abDe"
user_verify_code=input("请输入验证码")
if verify_code.upper() == user_verify_code.upper():
print("验证成功")
else:
print("验证失败")
ret4=s1.swapcase() # 大小写互相换
print(ret4)
ret5=s1.casefold() # 转换成小写,与lower区别,后者对某些字符支持不够.casefold() 对所有字母都有效.
print(ret5)
s2="mary egg ,taibai*yinwang_麻花"
ret6=s2.title() # 每个被特殊字符隔开的字母首字母大写. 中文也算特殊字符.
print(ret6) # Mary Egg,Taibai*Yinwang_麻花
2.切来切去
ret7=s.center(10,"*") # 拉长成10,把原字符串放中间,其余位置补*.
print(ret7)
ret8=s.expandtabs() # 更改tab的长度,
s3="mary wusir\teggon"
print(s3.expandtabs()) # 可以改变\t的长度,默认长度更改为8
ret9=s.strip() # strip 去左右两边空格; lstrip 去左边的空格 ; rstrip 去右边的空格.print
应用用户登录. 也可去掉制定元素.("指定元素")
ret10=s.replace("i","s",2 ) # 把" i "换成 " s " , "2"代表替换两个.
lst11=s.split(" ") # 字符串切割,根据引号里的字符进行切割 ,如果切割符在左右两端,那么 一定会出现空字符串
print(lst)
3.格式化输出
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)
4.查找
s1 = "我叫sylar, 我喜欢python, java, c等编程语言."
ret1 = s1.startswith("sylar") # 判断是否以sylar开头
print(ret1)
ret3 = s1.endswith("语言") # 是否以'语言'结尾
print(ret3)
ret4 = s1.endswith("语言.") # 是否以'语言.'结尾
print(ret4)
ret7 = s1.count("a") # 查找"a"出现的次数
print(ret7)
ret5 = s1.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)
5.条件判断
s1 = "123.16"
print(s1.isalnum()) # 是否由字母和数字组成
print(s1.isalpha()) # 是否由字母组成
print(s14.isdigit()) # 是否由阿拉伯数字
print(s14.isnumeric()) # 中文都识别.(一二 三; 壹贰; 123)
print(s14.isdecimal())
# 练习. 用算法判断某一个字符串是否是小数
s17 = "-123.12"
s17 = s17.replace("-", "") # 替换掉负号
if s17.isdigit():
print("是整数")
else:
if s17.count(".") == 1 and nots17.startswith(".") and not s17.endswith("."):
print("是小数")
else:
print("不是小数)
6.计算字符串的长度
s18 = "我是你的眼, 我也是a"
ret = len(s18) # 计算字符串的长度 是内置函数不需要加 " s."
print(ret)
注意: len()是python的内置函数. 所以访问方式也不一样. 你就记着len()和print()一样就行了.
7.迭代
我们可以使用for循环来便利(获取)字符串中的每一个字符
语法:
for 变量 in 可迭代对象:
pass
可迭代对象: 可以一个一个往外取值的对象
应用
s19 = "大家好, 我是VUE, 前端的小朋友们. 你们好么?"
用while循环
index = 0
while index < len(s19):
print(s19[index]) # 利用索引切片来完成字符的查找
index = index + 1
for循环, 把s19中的每一个字符拿出来赋值给前面的c
for c in s19:
print(c)
print('VUE' in s19)
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 = 0
for c in s20:
if c.isdigit():
count = count + 1
print(count)
python全栈开发 * 03 基本数据类型 * 180601的更多相关文章
- python全栈开发笔记----基本数据类型---列表List
#list 是 类 ,列表 序列是Python中最基本的数据结构.序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推. Python有6个序列的内置类型,但 ...
- python全栈开发笔记----基本数据类型---列表方法
#list 类中提供的方法 #参数 1.def append(self, *args, **kwargs)原来值最后追加#对象..方法(..) #li对象调用append方法 li = [11,22, ...
- python全栈开发笔记---基本数据类型--字符串魔法
字符串: def capitalize(self, *args, **kwargs) test = "aLxs" v = test.capitalize() #capitalize ...
- python全栈开发笔记---基本数据类型--数字型魔法
数字 int a1 =123 a2=456 int 讲字符串转换为数字 a = " #字符串 b = int(a) #将字符串转换成整形 b = b + 1000 #只有整形的时候才可以进 ...
- python全栈开发笔记---------基本数据类型
基本数据类似包括: 字符串(str) 数字(int) 列表(list) 元祖(tuple) 字典(dict) 布尔值(bool) 字符串(引号): name = "我是某某某" n ...
- Python全栈开发 列表, 元组 数据类型知识运用及操作 range知识
一.列表 1.什么是列表? 列表是一个可变类型,由 [ ] 表示,每一项元素用逗号隔开.列表能够装大量的数据,可以装对象的对象. 2.列表的索引和切片. 列表和字符串一样,也有索引和切片.只不过列表 ...
- Python全栈开发:基本数据类型
1.数字 int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647 在64位系统上,整数的位数为64位,取值范围为-2 ...
- Python全栈开发【模块】
Python全栈开发[模块] 本节内容: 模块介绍 time random os sys json & picle shelve XML hashlib ConfigParser loggin ...
- python 全栈开发,Day99(作业讲解,DRF版本,DRF分页,DRF序列化进阶)
昨日内容回顾 1. 为什么要做前后端分离? - 前后端交给不同的人来编写,职责划分明确. - API (IOS,安卓,PC,微信小程序...) - vue.js等框架编写前端时,会比之前写jQuery ...
随机推荐
- javascript 生成MD5加密
进行HTTP网络通信的时候,调用API向服务器请求数据,有时为了防止API调用过程中被黑客恶意篡改,所请求参数需要进行MD5算法计算,得到摘要签名.服务端会根据请求参数,对签名进行验证,签名不合法的请 ...
- [Linux] - 网速测试命令
Windows网速测试方法有很多,或者可以直接使用浏览器去一些网站上搜索测试即可. 在Linux中其实更容易,只需要一行命令即可搞定: curl -s https://raw.githubuserco ...
- 【ThinkPHP】ThinkPHP环境的安装与配置
ThinkPHP是一个免费开源的,快速.简单的面向对象的轻量级PHP开发框架. 严格来说,ThinkPHP无需安装过程,这里所说的安装其实就是把ThinkPHP框架放入WEB运行环境(前提是你的WEB ...
- [windows+cocos2dx]文本类
文字也是游戏最重要的元素之中的一个,以下就看看使用动态字体和静态字体库怎样创建文字.使用动态字体库创建的文字能够包括经常使用的不论什么字符,一般假设用户要输入名字,这就最好用动态字体库.由于你不知道用 ...
- Effective Java 第三版——81. 优先使用并发实用程序替代wait和notify
Tips 书中的源代码地址:https://github.com/jbloch/effective-java-3e-source-code 注意,书中的有些代码里方法是基于Java 9 API中的,所 ...
- MYSQL单表可以存储多少条数据???
MYSQL单表可以存储多少条数据??? 单表存储四千万条数据,说MySQL不行的自己打脸吧. 多说一句话,对于爬虫来说,任何数据库,仅仅是存储数据的地方,最关心的是 能否存储数据和存储多少数据以及存储 ...
- python中字符串前的r什么意思
Python中,u表示unicode string,表示使用unicode进行编码,没有u表示byte string,类型是str,在没有声明编码方式时,默认ASCI编码.如果要指定编码方式,可在文件 ...
- 【OpenFOAM案例】03 Docker安装OpenFOAM
"工欲善其事必先利其器",软件装不上,讲再多的使用技巧也是白搭.近期不少留言说OpenFOAM不容易安装,今天来谈谈如何在Linux下利用Docker安装OpenFOAM. Lin ...
- Redis在C#中的使用及Redis的封装
Redis是一款开源的.高性能的键-值存储(key-value store).它常被称作是一款数据结构服务器(data structure server).Redis的键值可以包括字符串(string ...
- go: writing stat cache:, permission denied
sudo chown -R $(whoami):admin /Users/zhushuyan/go/pkg && sudo chmod -R g+rwx /Users/zhushuya ...