好好学习,天天向上。又到了齐小猴写笔记的时间,今天的内容是python 变量以及常用数字类型,废话不多说,撸起袖子开始写

变量

1.说到变量,先回顾上一篇说过的标识符,自己定义,自己命名,由字母,下划线以及数字组成,必须小写字母,变量名是归属于标识符里面的,也需要我们自己命名,命名规则也是一样一样一样的

a = 1

b = 2

这里定义了两个变量,变量a和变量b,a=1和b=2是分别对两个变量进行赋值,就好比我们小学时学数学x=1,y=2是一个道理,等号左边是变量名,右边是变量值,看不懂去补习小学数学。

python里面一旦创建了一个变量,赋值给它以后,就会存储在python的内存里。那么我们在定义变量的时候要注意不要出现同名变量,什么意思呢,写一段试一下

a = 1

a = 2

print(a)

这里先定义一个变量a,赋值让它等于 1,紧接着,下面又定义了与它同名的变量a,赋值为2,这是输出a的结果

D:\python\python.exe D:/python-test/day_01/day_01_3.py

2

可以看到,a的值是2,也就是说,最新的赋值会覆盖掉上一次的赋值,所以在定义变量时不能出现同名变量,如果出现,会以最新的值赋给该变量

2.第二个需要注意的点是,如果你要引用一个变量,在引用之前,要确定是否已经定义并且赋值,同样举个栗子

print(a)

这里未定义过变量a,直接输出

D:\python\python.exe D:/python-test/day_01/day_01_3.py

Traceback (most recent call last):

File "D:/python-test/day_01/day_01_3.py", line 5, in

print(a)

NameError: name 'a' is not defined

Process finished with exit code 1

结果华丽丽的报错了,报错内容就是a没有被定义,如果在输出之前先定义一下变量a,并赋予一个值给它

a = 1

print(a)

一定会得到你想要的结果

D:\python\python.exe D:/python-test/day_01/day_01_3.py

1

python常见的数据类型

数字

1.整数 int

2.浮点数float

整型和浮点型是一个非常简单的概念,简单的说就是整数和小数,大家都是读过小学的人,可以轻而易举的判断出1是整数,2.5是小数,那么这里面1就是整型,2.5是浮点型,python呢也可以轻而易举的判断出,怎么看呢,用之前说过的type()函数

a = 1

b = 2.5

print(type(a))

print(type(b))

D:\python\python.exe D:/python-test/day_01/day_01_3.py

字符串

1.成对的单引号或者成对的双引号括起来的内容都是字符串

c = '1'

d = "hello"

print(type(c))

print(type(d))

D:\python\python.exe D:/python-test/day_01/day_01_3.py

这里可以看到,单引号里面的1和双引号里面的hello,都是字符串

2.字符串的取值访问

d = "hello"

print(d)

在这里,d是一个字符串,hello,想要取到d的值,只需要print输出,执行一下,得到结果

D:\python\python.exe D:/python-test/day_01/day_01_3.py

hello

完美!那如果我想取到hello中的e呢,稍微加个小改动即可

d = "hello"

print(d[1])

看一下结果

D:\python\python.exe D:/python-test/day_01/day_01_3.py

e

这是什么原理?第一,因为字符串里面的元素是由一个一个的字符组成,数一下hello,这里面有5个字符。第二,字符串里的每一个字符都是有索引的,位置是从0开始的,如何理解这一句,我们画个表格

image.png

把hello的每一个字符装进一个独立的表格,作为他们自己的索引,他们的位置从0开始,下一行标注他们的位置

image.png

这里可以比较直观的看出,我们想要的e在1的位置,所以,这个取值的方法是:字符串名[索引值],那么如果想要取o怎么取?就是这样:

d = "hello"

print(d[4])

上面的这个是正序访问,还有一种方法是反序访问,从数据的尾部开始定义索引,索引位置从-1开始

image.png

所以,要取o还有第二种方法,那就是

d = "hello"

print(d[-1])

3.如何处理字符串里的特殊字符

特殊字符有什么呢,比如说换行字符\n,制表符\t

这个处理方法在上一篇基础语法里有写过,转义,用r,R,或者\,此处不啰嗦,忘了的回去看基础语法篇

4.字符串的运算

字符串的运算符号主要有三个,先说前两个:+和*

其中+是拼接字符串的意思,还是举个栗子:

a = '123'

b = ' is a student'

c = a+b

print(c)

a和b分别是两个字符串,c用+将它们俩拼接,输出结果是:

D:\python\python.exe D:/python-test/day_01/day_01_3.py

123 is a student

拼接后的c同样也是字符串

print(type(c))

D:\python\python.exe D:/python-test/day_01/day_01_3.py

“+”说完了,那“ * ”呢?它的作用是重复字符串,还是刚刚的变量a,用*做个运算

a = '123'

print(a*5)

它的结果是将a重复输出5次

D:\python\python.exe D:/python-test/day_01/day_01_3.py

123123123123123

+和*介绍完毕,让它们去后台吃盒饭,下面是第三个运算符,它是一个成员运算符,主要用来判断字符串in或者not in,返回值是布尔值,所谓的布尔值就是True和False

a = 'hello'

print('h' in a)

此处定义变量a,赋值字符串hello,下面输出判断字母h是否在变量a里面

D:\python\python.exe D:/python-test/day_01/day_01_3.py

True

返回的结果是True,布尔值,相反的

a = 'hello'

print('t' in a)

判断字母t是否在a里面

D:\python\python.exe D:/python-test/day_01/day_01_3.py

False

结果就是False

到这里,字符串的运算基本说完了,那么问题来了,字符串在拼接的时候,必须是相同类型的字符串之间才可以进行拼接,如果,想要把不同类型的数据进行拼接怎么办

a = 1

b = 'hello'

print(a+b)

a是整数,b是字符串,a和b拼接,结果就是,报错了!

D:\python\python.exe D:/python-test/day_01/day_01_3.py

Traceback (most recent call last):

File "D:/python-test/day_01/day_01_3.py", line 34, in

print(a+b)

TypeError: unsupported operand type(s) for +: 'int' and 'str'

为啥报错,人家也说的很明显,不支持不同int和str类型的数据拼接,有啥办法,当然有办法!

a是整型对吧,把它转成字符串呗

a = 1

b = 'hello'

print(str(a)+b)

这样能不能拼?肯定能,再报错我就输一箱可乐给你

D:\python\python.exe D:/python-test/day_01/day_01_3.py

1hello

这里注意:只能把数字类型转换成字符串,不能把字母转成数字

4.字符串的切片

上面说过根据字符串的索引去取值,但是这个取值有一个缺点,就是只能获取到单个值,如果想要取到一串字符串里面的子字符串,这个时候切片就可以出场了,也就是说,切片就是可以根据你的要求去取值

用法是这样的:字符串名[m:n:k],m是索引开始的地方,n是索引结束的地方+1,k是步长。m和k不难理解,容易让人懵逼的地方是n,索引结束的地方+1怎么解释,还是以字符串hello为例

a = 'hello'

res = a[0:4:1]

print(res)

m是0,索引开始的位置,k是1,从索引值0开始依次加1,顺序0,1,2.....,n这里定义为4,假设索引结束的地方是n,那么这个输出结果是一直取到索引位置4,会是hello,现在运行一下结果

D:\python\python.exe D:/python-test/day_01/day_01_3.py

hell

诶,好像比假设中想象的结果少了点什么,少了个o,这时候返回去看当时的用法:

n是索引结束的地方+1

这里的n是4对吧,4是结束的地方+1,那么结束的地方是几呢,小学加减法,肯定是3啊,所以,从0开始,每次加1,到3的位置结束,结果是“hell”,这下没毛病了,如果想要打出完整的“hello”,只需要这样

a = 'hello'

res = a[0:5:1]

print(res)

结束位置再加1,变成5,确认过眼神,输出是对的人:

D:\python\python.exe D:/python-test/day_01/day_01_3.py

hello

k如果等于2或者其他值,除了取值的步长间隔,没有其他差别,给个例子自己体会

a = 'hello'

res = a[0:5:2]

print(res)

D:\python\python.exe D:/python-test/day_01/day_01_3.py

hlo

如果不输入k,k就取默认值1

a = 'hello'

res = a[0:5]

print(res)

不输入k,这里的k默认是1,结果是一样的

D:\python\python.exe D:/python-test/day_01/day_01_3.py

hello

如果m和n也不输入,默认从头取到尾

a = 'hello'

res = a[:]

print(res)

D:\python\python.exe D:/python-test/day_01/day_01_3.py

hello

5.字符串的格式化输出

格式化输出根据概念一句两句说不清楚,直接上栗子吧:

name = '静静'

age = 18

先定义俩变量,名字是静静,别问我静静是谁,年龄18,现在要输出一个什么样的结果呢?把他俩连成一句话,小学语文造句嘛,上面说过字符串拼接是吧,好

name = '静静'

age = 18

print(name+',今年'+str(age)+'岁')

D:\python\python.exe D:/python-test/day_01/day_01_3.py

静静,今年18岁

拼是拼上了,没啥问题,但是呢,如果想拼一句很长的话,这个方法着实有点麻烦,又要拼,又要转换格式,一不小心还搞不好会出错,想个办法优化一下:

name = '静静'

age = 18

print(name,'今年',age,'岁')

用逗号隔开,相当于隔开不同的元素,这样不需要通过转换整数的数据类型去和字符串拼接

D:\python\python.exe D:/python-test/day_01/day_01_3.py

静静 今年 18 岁

比上面的方法好了一点,但是也不是特别好,输出的结果里面多了好多空格,因为逗号是输出不同元素,中间就会多一个空格,所以这个办法也不完美,下面介绍格式化输出:

(1)第一种格式化输出方式:

首先介绍几个字符:%d表示要放一个整数,%f表示要放一个浮点数,%s表示要放一个字符串,那么上面的代码可以这样写

name = '静静'

age = 18

print('%s今年%d岁'%(name, age))

输出一个完整的字符串:"%s今年%d岁",其中有一个字符串的取值%s,和一个整数取值%d,他们的值分别取变量name和变量age,按顺序将name赋值给%s,age赋值给%d

D:\python\python.exe D:/python-test/day_01/day_01_3.py

静静今年18岁

(2)第二种格式化输出方式

利用format{}

name = '静静'

age = 18

print('{}今年{}岁'.format(name, age))

用法就是,{}代表此处要取值,按照顺序,取format后面的变量,在这里,name赋值给第一个{},age赋值给第二个{},所以结果是:

D:\python\python.exe D:/python-test/day_01/day_01_3.py

静静今年18岁

刚刚的例子是{}里面不指定数值,就会按照顺序取值,那如果{}给了指定值会怎样

name = '静静'

age = 18

print('{1}今年{1}岁'.format(name, age))

这里给的1可不是整数1,是索引值,也就是位置,跟之前说的一样,从0开始,如果是这样,那么输出的是:

D:\python\python.exe D:/python-test/day_01/day_01_3.py

18今年18岁

两个{}取的都是age(因为format里面的数据也是有索引的,并且也是从0开始标记,name索引是0,age是1),所以如果改成

name = '静静'

age = 18

print('{0}今年{1}岁'.format(name, age))

那么输出结果就是:

D:\python\python.exe D:/python-test/day_01/day_01_3.py

静静今年18岁

6.字符串的内建函数使用

终于说到字符串的最后一个内容了,别睡,挺住!我会尽量少废话,言简意赅

(1)字符串的大小写切换,upper()和lower(),直接上栗子,聪明如你不需要解释

str1 = 'hello'

res = str1.upper()

print('切换后的结果{}'.format(res))

D:\python\python.exe D:/python-test/day_01/day_01_3.py

切换后的结果HELLO

str2 = 'PYTHON'

res = str2.lower()

print('转换后的结果{}'.format(res))

D:\python\python.exe D:/python-test/day_01/day_01_3.py

转换后的结果python

(2)字符串的查找,find()函数

它可以用来找单个字符或者子字符串

a.单个字符:如果能找到,就返回单个字符在字符串里面的索引值

b.子字符串:如果能找到,就返回子字符串的第一个元素在原字符串里面的索引值

c.如果没找到,就返回-1

以下分别举例

a.单个字符:

str1 ='hello'

res = str1.find('o')

print('查找的结果:{}'.format(res))

D:\python\python.exe D:/python-test/day_01/day_01_3.py

查找的结果:4

b.子字符串

str1 ='hello'

res = str1.find('ell')

print('查找的结果:{}'.format(res))

D:\python\python.exe D:/python-test/day_01/day_01_3.py

查找的结果:1

c.找不到

str1 ='hello'

res = str1.find('666')

print('查找的结果:{}'.format(res))

D:\python\python.exe D:/python-test/day_01/day_01_3.py

查找的结果:-1

(3)字符串的替换 replace()

它的用法就是replace('要替换的目标字符','替换后的新值')

例如,将hello中的l都替换成@

str1 = 'hello'

res =str1.replace('l', '@')

print('替换后的结果:{}'.format(res))

D:\python\python.exe D:/python-test/day_01/day_01_3.py

替换后的结果:he@@o

两个l都被替换成了@,如果只想替换一个怎么办?别担心,replace()方法可以指定替换次数,这样用replace('要替换的目标字符','替换后的新值',替换次数)

str1 = 'hello'

res =str1.replace('l', '@', 1)

print('替换后的结果:{}'.format(res))

D:\python\python.exe D:/python-test/day_01/day_01_3.py

替换后的结果:he@lo

注意:只能指定替换次数,不能指定替换哪一个字符,不要想太多

(4)字符串的切割 split()

它会将我们的字符串根据指定的元素进行切割,切割后的结果返回列表类型的数据,但是元素类型还是字符串,比如一个西瓜切成三半,每一半还是西瓜

str1 = 'potato'

res = str1.split('o')

print('切割后的结果:{}'.format(res))

以元素o的位置切割字符串potato,两个o切两刀,所以会有三段,切割后的字符串存到列表里,结果是:

D:\python\python.exe D:/python-test/day_01/day_01_3.py

切割后的结果:['p', 'tat', '']

(5)字符串头尾的处理 strip()

它专门去掉字符串头和尾的元素

还用刚刚的potato,把尾巴上的o去掉

str1 = 'potato'

res =str1.strip('o')

print('处理后的结果:{}'.format(res))

D:\python\python.exe D:/python-test/day_01/day_01_3.py

处理后的结果:potat

如果结尾有两个o

str1 = 'potatoo'

res =str1.strip('o')

print('处理后的结果:{}'.format(res))

结果就是,两个o都不留

D:\python\python.exe D:/python-test/day_01/day_01_3.py

处理后的结果:potat

加入开头也有o

str1 = 'oopotatoo'

res =str1.strip('o')

print('处理后的结果:{}'.format(res))

那么,他们会手拉手一起走,去哪了?不知道,咱也不敢问,反正不在字符串里了

D:\python\python.exe D:/python-test/day_01/day_01_3.py

处理后的结果:potat

注意:这里只会去掉头和尾上的o,中间的不会去掉,p后面那个,是不是还好好的待着呢

变量及常用类型的上篇写到这,下篇预告:元组、列表和字典,如果一篇写不下可能还会有个中篇,具体情况等发布,不见不散

python定义int变量_Python变量以及常用数字类型(上)相关推荐

  1. ACCESS常用数字类型的说明和取值范围

    下面是ACCESS常用数字类型的说明和取值范围列表明供参考 数字类型                 范围 Byte(字节)            介于 0 到 255 之间的整型数. Integer ...

  2. python怎么定义int变量_Python 变量类型 | 菜鸟教程

    Python 变量类型 变量存储在内存中的值.这就意味着在创建变量时会在内存中开辟一个空间. 基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中. 因此,变量可以指定不同的数据 ...

  3. python定义一个list数据来源于变量_python基础知识4--数据类型与变量

    阅读目录 一.变量 二.数据类型 2.1 什么是数据类型及数据类型分类 2.2 标准数据类型: 2.2.1 数字 2.2.1.1 整型: 2.2.1.2 长整型long: 2.2.1.3 布尔bool ...

  4. python循环定义变量_Python变量和循环

    1.Python变量 比C语言,Java语言更加简洁,不需要加int等等类型定义,直接变量名 = 值,Python里甚至不需要分号.有些特定的不能当做变量名,变量只能由字母.数字和下划线组成,下划线可 ...

  5. python定义一个整数变量_Python变量与常量

    1.什么是变量 a=1,其中 a 就是变量名称,1 就是它的值.在程序运行过程中,变量的值一般都会发生改变,内存中会专门开辟一段空间,用来存放变量的值,而变量名将指向这个值所在的内存空间.与变量相对的 ...

  6. python定义整数型变量_Python变量类型有哪些?Python变量声明介绍

    变量不过是用于定义,存储和对输入数据执行操作的编程元素.Python变量类型有哪些?Python变量有四种不同类型,它们是Integer,LongInteger,Float和String.整数用于定义 ...

  7. python循环定义变量_Python 变量循环

    Python 变量-循环 一.变量 不管什么编程语言或脚本语言 在定义变量时都有一定的规则.Python变量定义规则如下: 变量名只能是字母.数字或下划线的任意组合 变量名的第一个字符不能是数字 关键 ...

  8. c语言调用python变量_Python变量

    在编程语言中,变量是一个必不可少的词,大家也可以把变量理解成名字,也可以理解为一个标签. 举个例子来讲解一下变量,比如我们购买了一套名为"dotcpp"的房子,我们在"d ...

  9. python内存管理变量_Python变量内存管理

    Python变量内存管理 一 .引入 解释器在执行到定义变量的语法时,会申请内存空间来存放变量的值,而内存的容量是有限的,这就涉及到变量值所占用内存空间的回收问题,当一个变量值没有用了(简称垃圾)就应 ...

最新文章

  1. Spring Cloud Alibaba 系统保护:微服务架构雪崩效应与服务限流
  2. UA MATH567 高维统计I 概率不等式7 亚指数性与亚指数分布
  3. 透视大数据,未来市场谁主沉浮?这个4月,3W企服大数据OpenForm等你报名!
  4. [基础题] * 9.(*)设计一个Student接口,以一维数组存储一个班级的学生姓名。
  5. 关于实现android状态栏沉浸的几种方法
  6. 直接插入排序,折半插入排序,希尔排序,简单选择排序,冒泡排序,快速排序模板以及比较次数与移动次数的分析,折半搜索算法模板
  7. [vue] 说说你对keep-alive的理解是什么?
  8. 配置Debian11服务器允许root用户远程SSH登录
  9. 提升有监督学习效果的实战解析
  10. 著名风投Greylock扩展基金局限 投资科技行业
  11. java redis事务_Redis事务
  12. fedora 安装google浏览器失败,报错
  13. [MVC学习笔记]4.使用Log4Net来进行错误日志的记录
  14. 2021-05-15 MySql面试题 通用篇
  15. PEmicro GDB Launch Failure : Could not bind socket.
  16. 小程序客服功能可以实现哪些操作?
  17. 谱聚类算法入门教程(三)—— 求f^TLf的最小值
  18. 相似度系列8:unify-BARTSCORE: Evaluating Generated Text as Text Generation
  19. 著名平面设计师有哪些?你想成为他们嘛?
  20. 官方免费的正版Xshell,人人都可以马上拥有

热门文章

  1. 从排列到组合——深度优先搜索
  2. 【云原生】第六篇--Dockerfile精讲及新型容器镜像构建技术
  3. 为什么今日头条、子弹短信、快播王欣都选在同一天举办社交产品发布会?
  4. 优化join or情形
  5. 使用Python中的tabula模块进行pdf2excel转化时出现JAVA_NOT_FOUND_ERROR问题
  6. 计算机c语言程序,计算机编程|C语言简介
  7. ASCII码二进制文件文本文件
  8. 浅谈ChatGPT的关键技术与落地发展
  9. 解决问题: Error: command failed: npm install --loglevel error --legacy-peer-deps
  10. D8016 “/ZI”和“/clr”命令行选项不兼容