百万年薪python之路 -- 基本数据类型
整数 -- 数字(int)
用于比较和运算
32位 2 ** 31 ~ 2 ** 31-1
64位 -2 ** 63 ~ 2 ** 63- 1
+ - * / // ** %
python2 整型int -- long(长整型) / 获取整数
python3 整型int / 获取浮点数
bin(十进制数) 将十进制转换成二进制 (除二求余法)
int("二进制",2) 将二进制转换成十进制
布尔值 -- bool()
print(bool(1)) #数字非零就是True,零就是False
print(bool("")) #字符串不为空就是True,字符串里没有任何东西就是False
print(bool(" ")) #结果:True
print(bool("False")) #结果为True
字符串详解
索引(下标)
从左往右(0~n)
从右往左(-1~字符串的长度)
索引的时候索引超出范围会报错
切片
name = 'Jacky'
# 索引 01234
print(name[0:4])
结果:
Jack
[第一个位置是开始:第二个位置是终止]中间必须使用分号,从索引0开始获取到索引4(不包含4)结束
步长
name = 'Jacky' # 索引 01234 print(name[0:4:1]) 结果: Jack""" s = 'Python最NB' 获取s字符串中前3个内容 获取s字符串中第3个内容 获取s字符串中后3个内容 获取s字符串中第3个到第8个 获取s字符串中第2个到最后一个 获取s字符串中第1,3,5个内容 获取s字符串中第2,4,6个内容 获取s字符串中所有内容 获取s字符串中第4个到最后一个,每2个取一个 获取s字符串中倒数第5个到最开始,每3个取一个 """ s = 'Python最NB' print(s[0:3]) print(s[2]) print(s[-3:]) print(s[2:8]) print(s[1:]) print(s[0:5:2]) print(s[1:6:2]) print(s[:]) print(s[3::2]) print(s[-5::-3]) print(s[:-8:-2])[开始 : 结束 : 步长] 步长默认为1
第一个参数是起始位置,第二参数是终止位置,第三个参数是步长(每次走几步)
切片的时候起始位置和终止位置超出范围的时候不报错
字符串的方法
因为字符串是可哈希的(不可变的),所以使用方法后字符串并没有改变,需要重新赋值
upper()(全部大写)
name = 'alex' new_name = name.upper() print(new_name) # 把这个字符串全部变成大写 结果: ALEXlower()(全部小写)
name = 'ALEX' new_name = name.lower() print(new_name) # 把这个字符串全部变成小写 结果: alex应用场景
# 字符串大小写做验证码 id = '1234' id_input = input("请输入验证码(1234)") user = input('请输入账号:') pwd = input('请输入密码:') if id == id_input: if user == 'alex' and pwd == 'alex123': print('登陆成功!') else: print('登录失败') else: print('验证码错误!')
startswith("字符")(判断是否以什么开头)
name = 'alex' new_name = name.startswith('a') print(new_name) # 判断这是不是字符串是不是以a开头的 结果: True name = 'alex' new_name = name.startswith('e',2,6) print(new_name) # 判断这是不是字符串是不是以e开头的 结果: Trueendswith("字符")(判断是否以什么结尾)
name = 'alex' new_name = name.endswith('x') print(new_name) # 判断这是不是字符串是不是以x结尾的 结果: Ture name = 'alex' new_name = name.endswith('e',2,3) print(new_name) # 判断这是不是字符串是不是以e结尾的 结果: Truecount()(统计出现的次数)
name = 'alexdsb' new_name = name.count('a') print(new_name) #统计name这个字符串中a出现的次数 结果: 1replace("旧替换字符","新替换字符") (字符串替换,后面的字符替换前面的字符)
特殊用处:把字符串所有的空格去掉 #replace(" ","")
s = ' a l ex ds b ' s1 = s.replace(' ','') print(s1) # 替换字符串中的内容 结果: alexdsbname = 'alexdsb' new_name = name.replace('alex','zdr') print(new_name) # 替换字符串中的内容 结果: zdrdsb name = 'alexdsbalex' new_name = name.replace('alex','zdr',1) print(new_name) # 替换字符串中的内容,1是指替换一次就行 结果: zdrdsbalexstrip() (去除头尾俩边的空格,换行符,制表符)
name = ' alexdsb ' new_name = name.strip() print(new_name) #去除头尾俩遍的空格和换行符 结果: alexdsbname = 'alexdsba' new_name = name.strip("al") print(new_name) # 去除头尾的al和a 结果: exdsbsplit("字符") (以空格,换行符,制表符分割)
name = 'alexdsb' new_name = name.split("x") print(new_name) #通过x将字符串name进行切割 结果: ['ale', 'dsb']name = 'alexdsbx' new_name = name.split("x",2) print(new_name) #通过x将字符串name进行切割,2指的是最多切几刀 结果: ['ale', 'dsb', '']format("字符") (字符串格式化)
name = 'alexdsb{}' new_name = name.format('说的对') print(new_name) # 字符串格式化 结果: alexdsb说的对is系列
isdecimal() (判断是不是十进制,返回的是布尔值)
name = '123' new_name = name.isdecimal() print(new_name) # 判断是不是十进制,返回结果是布尔值 结果: True- isalpha() (判断是不是字母和中文,返回的是布尔值)
name = 'alex' new_name = name.isalpha() print(new_name) # 判断是不是字母和汉字,返回结果是布尔值 结果: Trueisalnum() #判断是不是字母,数字,中文
isdigit() #判断是不是阿拉伯数字
补充-
首字母大写 name = 'alexdasx' new_name = name.capitalize() print(new_name) 查找下标 name = 'alexdasx' new_name = name.find('e') print(new_name) # 通过元素查找下标,不存在就返回-1 name = 'alexdasx' new_name = name.index('e') print(new_name) # 通过元素查找下标,不存在就报错 每个单词首字母大写 name = 'alex_wusir' print(name.title()) 内容填充 name = 'alex_wusir' print(name.center(50)) 大小写反转 name = 'alex_wusir' print(name.swapcase())
len() (获取长度)
s = "Python提供的这个方法就是获取长度的" print(len(s)) 结果: 20
for循环 --for关键字
name = "Jacky"
for i in name:
print(i)
结果:
J
a
c
k
y
for是关键字,i是一个变量,后边的name是要被循环的内容,他会把这个name指向的字符串里的每个元素打印出来
格式:
for 关键字 i 变量 in 关键字 要迭代的对象 冒号
缩进 循环体
for 变量 in 要迭代的对象:
循环体
for i in name:
pass
for 关键字
i 变量
in 关键字
name 可迭代对象
可迭代的:能被for循环的
for循环是可以循环的数据结构(就是后面会讲的 可迭代):
- 字符串(str)
- 列 表(list)
- 元 祖(tuple)
- 字 典(dict)
- 集 合(set)
唯独不能进行循环的就是 整型(int)和布尔值(bool)
面试:
for i in "alex":
pass
print(i) #x
pass ... #占位符
百万年薪python之路 -- 基本数据类型的更多相关文章
- 百万年薪python之路 -- 基础数据类型的补充练习
1.看代码写结果 v1 = [1,2,3,4,5] v2 = [v1,v1,v1] v1.append(6) print(v1) print(v2) [1,2,3,4,5,6] [[1,2,3,4,5 ...
- 百万年薪python之路 -- 基础数据类型的补充
基础数据类型的补充 str: 首字母大写 name = 'alexdasx' new_name = name.capitalize() print(new_name) 通过元素查找下标 从左到右 只查 ...
- 百万年薪python之路 -- 基本数据类型练习
1.代码敲一遍,然后整理笔记 2.有变量name = "aleX leNb" 完成如下操作: 移除 name 变量对应的值两边的空格,并输出处理结果 name = "al ...
- 百万年薪python之路 -- 小数据池和代码块
1.小数据池和代码块 # 小数据池 -- 缓存机制(驻留机制) # == 判断两边内容是否相等 # a = 10 # b = 10 # print(a == b) # is 是 # a = 10 # ...
- 百万年薪python之路 -- JS基础介绍及数据类型
JS代码的引入 方式1: <script> alert('兽人永不为奴!') </script> 方式2:外部文件引入 src属性值为js文件路径 <script src ...
- 百万年薪python之路 -- MySQL数据库之 常用数据类型
MySQL常用数据类型 一. 常用数据类型概览 # 1. 数字: 整型: tinyint int bigint 小数: float: 在位数比较短的情况下不精确 double: 在位数比较长的情况下不 ...
- 百万年薪python之路 -- 面向对象之三大特性
1.面向对象之三大特性 1.1封装 封装:就是把一堆代码和数据,放在一个空间,并且可以使用 对于面向对象的封装来说,其实就是使用构造方法将内容封装到 对象 中,然后通过对象直接或者self间接获取被封 ...
- 百万年薪python之路 -- 面向对象之继承
面向对象之继承 1.什么是面向对象的继承 继承(英语:inheritance)是面向对象软件技术当中的一个概念. 通俗易懂的理解是:子承父业,合法继承家产 专业的理解是:子类可以完全使用父类的方法和属 ...
- 百万年薪python之路 -- 模块二
1. 序列化模块 什么是序列化呢? 序列化的本质就是将一种数据结构(如字典.列表)等转换成一个特殊的序列(字符串或者bytes)的过程就叫做序列化. 为什么要有序列化模块? 如果你写入文件中的字符串是 ...
随机推荐
- 暑期——第三周总结(Ubuntu系统安装eclipse问题【已解决】)
所花时间:7天 代码行:200(python)+150(java) 博客量:1篇 了解到知识点 : 一: Python: 问题 unresolved reference xrange 解决方案 pyt ...
- 安装vue开发环境
每次搜索vue开发环境安装时,总是有很多种版本,虽然都能安装完成,但还是整理下自己觉得比较好的版本吧 1.首先安装nodeJs以及也把git安装好(反正开发也是需要git),安装完成后执行 node ...
- vue中关于滚动条的那点事
vue中关于滚动条的那点事 不知道你有没有遇到过这种情况,有时当页面切换时,滚动条不在页面的顶端.最近半路加入一个项目,就遇到这种情况.(若只是为了解决此问题,可直接翻到最下方)下面谈谈解决此问题的过 ...
- Python实战练习_贪吃蛇 (pygame的初次使用)
正如标题所写的那样,我将一步步的完成本次实战练习——贪吃蛇.废话不多说,感兴趣的伙伴可以一同挑战一下. 首先说明本次实战中我的配备: 开发环境:python 3.7: 开发工具:pycharm2019 ...
- 从壹开始 [Admin] 之五 ║ 实现『按钮』级别权限配置
一.前情回顾 哈喽大家好,在这个欢庆的日子里,老张祝大家工作都能蒸蒸日上!今天正好也是社团成立的第一天,我也是希望今天能是个纪念日,沾沾这个大喜庆! 放假这两天,倒是学到了很多东西,我这个也是承认的, ...
- Spring Data JPA 梳理 - JPA是什么
总结: JPA是java的标准,不是Spring的标准 java标准中一般通过Meta-INF文件规范开发层面的事情,JPA也不例外,使用persistence.xml JPA定义了Entity 到 ...
- 阿里云ecs安全组端口开放设置
新买的一些云服务,上面操作都没问题还是无法访问,需要在购买的服务里加上安全规则,如图: 点击配置规则进行操作
- 对vue nextTick深入理解-vue性能优化、DOM更新时机、事件循环机制
一.定义[nextTick.事件循环] nextTick的由来: 由于VUE的数据驱动视图更新,是异步的,即修改数据的当下,视图不会立刻更新,而是等同一事件循环中的所有数据变化完成之后,再统一进行视图 ...
- 夯实Java基础系列12:深入理解Java中的反射机制
本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...
- VR应用评测 - Apollo 11 阿波罗11号
Apollo 11 VR http://store.steampowered.com/app/457860/Apollo_11_VR/ Steam VR 2016年发布 好评率 50% 基于美国航空航 ...