万恶之源 - Python基础数据类型一

整数

整数在Python中的关键字用int来表示; 整型在计算机中运于计算和比较

在32位机器上int的范围是:  -2**31~2**31-1,即-2147483648~2147483647

在64位机器上int的范围是: -2**63~2**63-1,即-9223372036854775808~9223372036854775807

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

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

整数的加

a = 10
b = 20
print(a + b)结果:
30

整数的减

a = 10
b = 20
print(b - a)结果:
10

整数的乘

a = 10
b = 20
print(a * b)结果:
200

整数的除

a = 10
b = 20
print(b / a)结果:
2.0
# 注意点:当我们使用Python3的时候我们除法获取到时浮点数,也就是小数,但是使用Python2的时候使用除法获取的就是整数

整数的整除

a = 10
b = 20
print(b // a)结果:
2

整数的取余

a = 5
b = 2
print(a % b)结果:
1

整数的次方(幂)

a = 5
b = 2
print(a ** b)结果:
25

注意点: 在Python2中存在long(长整型) 但是在Python3中long(长整型)不存在

布尔值

布尔值(bool) 判断真假; 取值只有 True False 

转换问题:

str ==> int
n = int('22')
print(n)
结果:
22
#注意点:字符串中的内容必须是阿拉伯数字才能强行转换
int ==> str
n = str(22)
print(n)
结果:
22
int ==> bool
n = bool(4)  # bool(-1) 结果也是True
print(n)
结果:
True
注意点: 使用bool转换的时候只要是非0的都为True
bool ==> int
n = int(True) # int(False) 结果是0
print(n)
结果:
1
bool ==> str
n = str(True)
print(n)
结果:
True   
注意点: 只要字符串中的内容不为空,所得到的结果就是True
str ==> bool
n = str(True)
print(n)
结果:
True 

字符串

字符串(str)   字符串, 可以保存少量数据并进行相应的操作 

在第一天的时候咱们简单的认识了下字符串,今天我们好好的来认识一下这个让你又喜又优的字符串

字符串是可以存储一些数据,方便我们使用

字符串加

a = '世界'
b = '你好'
print(a + b)
结果:
世界你好

通过刚刚我们的测试发现字符串也是可以进行加法操作的,字符串相加其实有个专业的名词 --- 字符串拼接;相加的规则就是必须都是字符串才能相加

字符串中是不能进行减法和除法操作的,通过这句话就能得知字符串是可以进行乘法操作的,我们立马来看一下:

字符串乘

a = '坚强'
print(a * 8)
结果:
坚强坚强坚强坚强坚强坚强坚强坚强

字符串的乘法就是将多个字符串拼接到一起,乘法的规则:只能是字符串和数字相乘

 索引(下标)

大家在上学的时候就会发现在一个班有的同学的名字是一样的,最后大家为了好区分就有了外号,我们每个人都有个学号,其实学校就是为了防止重名找错人,

学号就是一种能够保证唯一且准确的手段,这种手段在计算机中存在,这种手段叫做索引,也有人称之为下标.注意:索引如果操作有误就会报错

 

图上就是对"meet"字符串进行索引排号,其实图上有一点大家不难看出m对应的是数字0,如果让我们人来给排号.下意识的会从1开始.

因为我们从小的时候就是从1开始数数的,但是在计算机中数数确实要从0开始,其实这个点也是对程序的入门.

以后在碰到这种类似的问题我们就知道是从0开始计数,废话不多说我们来看看,我说的到底行不行.

name = 'meet'
# 索引  0123
print(name[0])结果:
m  

细心的老铁们会发现这[ ]是干啥的,这个是一个查找,我不知道字符串中第一个是什么,但是我知道第一个的索引,我就可以通过这个方式来查看

比方:我不知道这个学生叫什么,但是我知道他的学号.我也可以通过学号找到这个同学.

图上这个是从左到右的一种排序,其实还有一种从右像左的排序,看下图:

这个查看和上边的一样,只不过是索引排序的方式不一样,他这次的排列序号是从右向左并且还是以-1开始,这里的-1其实就是表示我们的倒数第一个

-2表示倒数第二个,这样排列,如果我们的字符串比较长的时候想要获取最后一个就完全可以使用-1,看以下示例:

name = 'meet'
# 索引 -4-3-2-1
print(name[-1])结果:
t

告诉大家一个小技巧,当开始的是我们不能明确的区分这个字符串中的每个索引的时候,我们就先把每个字母对应的索引写下来,这样就方便我们查找

上边我们说完了索引,你们就以为完事了是吗?不是滴,咱们还有来个内容没有进行讲解,分别是切片和步长

切片

切片又是什么呢?我们先来看一个示例:

name = 'meet'
# 索引  0123
print(name[0:3])结果:
mee

[第一个位置是开始:第二个位置是终止]中间必须使用分号,这样的写法就是从索引0开始获取到索引3结束  

这个结果是不是和大家想的有点出入啊,大家肯定认为获取到的内容是meet,但是为什么是mee呢,因为终止的索引是不包含的获取的是这个区间的内容

想想咱们在买肉的时候,有一个块整肉,这块整肉就后边有点肥,不想要是不是就让老板给切掉了,我们就买前边的部分啊.在生活中这种神操作就是切片

我也知道你们刚接过这些东西,使用起来不是很熟悉,尤其是切片这部分,在悄悄的告诉你们个小技巧,下次当看到切片中终止位置的时候把这个数减一就ok啦

步长

步长又是什么呢?先看示例:

name = 'meet'
# 索引  0123
print(name[0:3:1])结果:
mee 

 

发现我在中括号中最后一个位置写了一个东西,也没什么变化,是的没有变化,因为我们不写的时候他默认就是1,我们换个数字在来看看

name = 'meet'
# 索引  0123
print(name[0:3:2])结果:
me  

这又是啥情况呢?想想我开始告诉大家的中括号里第一个参数是起始位置,第二参数是终止位置,第三个参数现在告诉大家是步长(每次走几步)

 

当步长设置为2的时候,咱们只需要用起始位置0加上步长2,结果也就2然后在把索引为2的找到,2在加上步长2就是4,当要查找索引4是发现终止索引就是3,

所有不会进行查找.最终的结果就是me.

练习1

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'# 获取s字符串中前3个内容
print(s[0:2])
# 获取s字符串中后3个内容
print(s[6:9])
# 获取s字符串中第3个到第8个
print(s[2:8])
# 获取s字符串中第2个到最后一个
print(s[2:])
# 获取s字符串中第1,3,5个内容
print(s[0:6:2])
# 获取s字符串中第2,4,6个内容
print(s[1:7:2])
# 获取s字符串中所有内容
print(s[:])
# 获取s字符串中第4个到最后一个,每2个取一个
print(s[3::2])
# 获取s字符串中倒数第5个到最开始,每3个取一个
print(s[-5::-3])
答案  

练习2

判断⼀句话是否是回⽂. 回⽂: 正着念和反着念是⼀样的. 例如, 上海⾃来⽔来⾃海上

练习3

有字符串s = "123a4b5c"通过对s切片形成新的字符串s1,s1 = "123"
通过对s切片形成新的字符串s2,s2 = "a4b"
通过对s切片形成新的字符串s3,s3 = "1345"
通过对s切片形成字符串s4,s4 = "2ab"
通过对s切片形成字符串s5,s5 = "c"
通过对s切片形成字符串s6,s6 = "ba2" 

字符串方法详解

全部大写

name = 'alex'
new_name = name.upper()
print(new_name)
# 把这个字符串全部变成大写

全部小写

name = 'ALEX'
new_name = name.lower()
print(new_name)
# 把这个字符串全部变成小写  

应用场景:

# 字符串大小写做验证码
y_z_m = 'O98k'
y_z_m_input = input("请输入验证码(O98k)")
user = input('请输入账号:')
pwd = input('请输入密码:')
if y_z_m == y_z_m_input:if user == 'alex' and pwd == '8520':print('登陆成功!')else:print('登录失败')
else:print('验证码错误!')

练习

将 name 变量对应的值全部变成大写,并输出结果
将 name 变量对应的值全部变成小写,并输出结果

以什么开头  

name = 'alex'
new_name = name.startswith('a')
if new_name:print('是以a开头')
# 判断这是不是字符串是不是以a开头的

以什么结尾  

name = 'alex'
new_name = name.endswith('x')
if new_name:print('是以x结尾')
# 判断这是不是字符串是不是以x结尾的

统计出现的次数

name = 'alexdasx'
new_name = name.count('a')
print(new_name)
# 统计name这个字符串中a出现的次数  

练习

判断 name 变量是否以 "al" 开头,并输出结果
判断name变量是否以"Nb"结尾,并输出结果
判断name变量对应的值字母"l"出现几次,并输出结果

字符串替换  

name = 'alexdasx'
new_name = name.replace('sx','sb')
print(new_name)
# 替换字符串中的内容

去除头尾两边的空格  

name = ' alexdasx '
new_name = name.strip()
print(new_name)# 去除头尾俩遍的空格和换行符

分割

name = 'alexdasx'
new_name = name.split("x")
print(new_name)
#通过x将字符串name进行切割

字符串格式化

name = 'alexdasx{}'
new_name = name.format('说的对')
print(new_name)
# 字符串格式化 

练习  

将 name 变量对应的值中的 所有的"l" 替换为 "p",并输出结果 
将name变量对应的值中的第一个"l"替换成"p",并输出结果
将 name 变量对应的值根据 所有的"l" 分割,并输出结果。
将name变量对应的值根据第一个"l"分割,并输出结果。 
请输出 name 变量对应的值的第 2 个字符? 
请输出 name 变量对应的值的前 3 个字符? 
请输出 name 变量对应的值的后 2 个字符?

is系列

 判断是不是十进制,返回的是布尔值

name = 'alexdasx'
new_name = name.isdecimal()
print(new_name) # 判断是不是十进制,返回结果是布尔值

判断是不是数字和字母,返回的是布尔值

name = 'alex7dasx'
new_name = name.isalnum()
print(new_name)
# 判断是不是字母和数字,返回结果是布尔值

判断是不是纯字母及汉字,返回的是布尔值

name = 'alexdasx'
new_name = name.isalpha()
print(new_name)
# 判断是不是字母和汉字,返回结果是布尔值

练习

输⼊⼀个字符串,要求判断在这个字符串中⼤写字⺟,⼩写字⺟,数字, 共出现了多少次,并输出  

基础数据补充的时候,给大家讲解

首字母大写
name = 'alexdasx'
new_name = name.capitalize()
print(new_name)查找下标
name = 'alexdasx'
new_name = name.find('e')
print(new_name)
# 通过元素查找下标,不存在就返回-1name = '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())

获取长度

目前我们写的内容还比较少,如果有一个很长很长的字符串,如果要是一个一个数是不是很累呢,Python给咱们提供了一个方法就是获取长度的.

长度获取示例:

name = "Meet"
print(len(name))结果:
4 

我们现在能够轻松的获取到到长度,现在我有这么一个字符串 name = "Meet",请使用while循环获取到字符串中每个元素并打印,效果图入下:

name = "Meet"count = 0
while count < len(name):print(name[count])count = count + 1

以上这个写法是没有问题的,你们来看这个会不会简单些

name = "Meet"
for i in name:print(i)

上边的这个东西叫做for循环, for是关键字    i是一个变量    后边的name是要被循环的内容,他会把这个name指向的字符串里的每个元素打印出来

 for循环是可以循环的数据结构:

  • 字符串(str)
  • 列   表(list)
  • 元   祖(tuple)
  • 字   典(dict)
  • 集   合(set)

唯独不能进行循环的就是 整型(int)和布尔值(bool)

  

转载于:https://www.cnblogs.com/guobaoyuan/p/9762496.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/451053.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jackson/fastJson boolean类型问题

1.我们以Person对象举个栗子&#xff0c;person有三个属性。name&#xff0c;age和isGay Data public class Person {public Person(String name, int age, boolean isGay) {this.name name;this.age age;this.isGay isGay;}private String name;private Integer age;priva…

狗窝里的小日子 ...

来&#xff0c;把平时作的菜菜整理下下&#xff1a; 1. 2. 3. 4. 5. 6. 7. 8.

Android直接用手机打包apk!

你没有看错&#xff0c;用手机浏览器访问Jenkins&#xff0c;就可以打包apk&#xff0c;并生成下载二维码&#xff0c;发送邮件通知测试人员下载&#xff0c;从此解放双手&#xff0c;告别打包测试。先上本人手机邮箱收到的打包成功通知效果图&#xff1a; 废话少说&#xff0c…

java中byte、short、char、boolean实际都是按照int处理的!

byte、char、short、boolean四种类型在汇编期或运行期间采取和int类型一样的存储方式&#xff0c;在计算时会先转换为int类型&#xff0c;后进行计算。所以两个short类型数据做算数运算&#xff0c;结果却为int类型。这主要是因为jvm的字节码为了简洁高效&#xff0c;设计时只使…

狗窝里的小日子- 2 ...

来&#xff0c;把平时作的菜菜整理下&#xff1a; 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.

优秀程序员必备素质——快速调试

你是否有过这些经历&#xff1a; 1.代码敲完了&#xff0c;刚想松口气&#xff0c;一运行程序&#xff0c;满满的Bug。 2.找啊找啊找&#xff0c;怎么找都找不到哪里出了问题。 3.调试了半天出不来&#xff0c;就开始便得心烦气躁。 4.一天连一个Bug也没调出来&#xff0c;…

Java程序编译运行过程

整体流程 1.首先由源程序文件编译成class文件。注意这里的源程序并不仅限于java程序&#xff0c;其他语言如果能够编译成class文件&#xff0c;并且符合jvm规范也能够在jvm上运行。 2.jvm将class文件拷贝到内存&#xff0c;解释成相应的机器语言运行。我们常用的hotspot虚拟机…

【TeeChart .NET教程】(七)使用函数

2019独角兽企业重金招聘Python工程师标准>>> 上一篇&#xff1a;【TeeChart .NET教程】&#xff08;六&#xff09;使用系列 【下载TeeChart.Net最新版本】 &#xff08;一&#xff09;功能类型 1.1 功能类型 TeeChart Pro功能是一个系列&#xff0c;几乎可以是任何…

Django的简介

一.MTV模型 Django的MTV模式: Model(模型):和数据库相关的.负责业务对象与数据库的对象(ORM) Template(,模板):放所有的HTML文件 模板语法:目的是将变量(数据库内容)如何巧妙的镶嵌到HTML页面中 View(视图):负责业务逻辑,并在适当的时候调用Model和Template 此外Django还有一个…

狗窝里的小日子- 3 ...

来&#xff0c;把平时作的菜菜整理下&#xff1a; 21. 22. 23. 24. 25. 26. 27. 28. 29. 30.

5种流行的Linux发行版:你更喜欢哪一个呢?

现如今&#xff0c;对于各种类型的用户&#xff08;如桌面用户、服务器管理员、图形设计者等&#xff09;而言Linux已经成为一种最流行的操作系统。Linux是免费且开源的&#xff0c;任何人都可以建立和编译它的源代码&#xff0c;并将它分发给别人。这就是为什么Linux会有很多个…

基于ASP.net耳机网店商城系统(前台页面+后台页面)

源码https://github.com/doublekai/user web文件夹 转载于:https://www.cnblogs.com/doublekai/p/9778246.html

狗窝里的小日子- 4 ...

来&#xff0c;把平时作的菜菜整理下&#xff1a; 31. 32. 33. 34. 35. 36. 37. 38. 39. 40.

[Web 前端] 解决因inline-block元素导致的空白间距和元素下沉

cp from : https://www.jianshu.com/p/617e78a27c88 ** 前言&#xff1a; ** CSS 中的 display:inline-block 是笔者最为喜欢的元素之一&#xff0c;可以将原本占据一行的块级元素&#xff0c;转变为可以并列显示的行内块级元素。 display:inline-block 常被用来代替float进行页…

狗窝里的小日子- 5 ...

来&#xff0c;把平时作的菜菜整理下&#xff1a; 51. 52. 53. 54. 55. 56. 57. 58. 59. 60.

Linux(RadHat)基础学习—FTP服务

RedHat下的ftp服务 1.ftp服务的启动 1.编辑文件&#xff1a;vim /etc/sysconfig/selinux第6行selinuxdisabled保存退出。重启主机。 2.安装vsftpd yum install vsftpd -y 安装完成&#xff1a; 开启ftp服务&#xff1a; systmctl start vsftpd systemctl enable vsftpd 3.防火墙…

手机贴膜利润超百倍 消费者为无用功能高价买单

摘要&#xff1a;市场研究机构IDC的最新报告预计&#xff0c;2013年智能手机出货量将首次超过功能手机&#xff0c;国家工信部的数据显示&#xff0c;截至2011年底&#xff0c;我国智能手机用户已超过1.9亿。记者调查发现&#xff0c;在从事手机贴膜的摊点上&#xff0c;摊主多…

java内存区域及静态常量池、运行时常量池介绍

java内存区域介绍 我们先来介绍下虚拟机运行时数据区的结构&#xff1a; 我们项目中的每一个线程在运行时&#xff0c;都会有拥有自己独立的栈数据和程序计数器。程序计数器可以看作字节码命令的指示器&#xff0c;记录了下个需要执行的字节码指令&#xff0c;栈数据主要分为本…

狗窝里的小日子- 6 ...

来&#xff0c;把平时作的菜菜整理下&#xff1a; 61. 62. 63. 64. 65. 66. 67. 68. 69. 70.

数据库常见面试题总结

参考如下: 数据库常见面试题(开发者篇) 数据库优化 SQL数据库面试题及答案 常见面试题整理--数据库篇转载于:https://www.cnblogs.com/threetop/p/9425172.html