如上图所示,这是首先新建一个python文件,
代码的美观特别重要。
变量可以视为一块用来储存数据的空间。(想象成一个纸盒子)
=表示‘赋值运算符’
不是数学上的‘比较相等’
变量命名的规则
使用变量
1.读取变量的值
a=10
print(a)
2.修改变量的值
a=20
print(a)
注意:在python中,修改变量也是使用=运算,看起来和定义变量没有明显区别。
其中的变量a=变量b,就是将变量b的值赋值给变量a。
变量的类型:对于不同种类的变量做出区分
可以使用print(type(a))
就可以打印出变量的类型。
python中的变量类型,不需要在定义变量的时候显式声明。
而只是依靠初始化语句,根据初始化的值的类型来进行确定的。
在python中int能够表示的数据范围,是“无穷”的,python的int是可以根据要表示的数据的大小,自动扩容。
因此python这里就没有long这样的类型了~~
像byte,short这些类型在python中也不存在~~
四种不同的变量类型
整形变量:int类型
浮点数(小数)float
像C++和Java里面,float是四个字节的,也叫做”单精度浮点数“
字符串类型数据:str(string)类型{在python中要求使用引号把一系列的字符,引起来就构成了字符串,引号用‘或者”都是可以的。}
len=>length(长度)
在python中有这样一个函数即len函数,这个len函数可以用来求字符串的长度。
布尔的取值只有真和假,因此布尔类型{bool类型}主要用于逻辑判定
真True
假False
变量类型带来的意义
python报错的情况。
在python中,报错有两种情况:
1.语法错误,在程序运行之前,python解释器,就能把错误识别出来。
2.运行错误,在程序运行之前,识别不了的,必须要执行到对应的代码,才能发现问题。
python的一个设计哲学:解决一个问题,只提供一种方案。
动态类型的特性
python作为一个动态类型的语言,在定义变量的时候,也是可以写类型的。
比如在a:int = 10
动态类型,写法,比较灵活,提高了语言的表达能力
然而,在编程中灵活这个词往往意味着贬义,更容易出错。
相比之下,静态类型的语言还是更好一些的,
尤其是在大型的程序中,多人协作开发
很多在创业之初的公司,最初会喜欢使用python来编写程序,往往一两个程序员就能搞定。
python中的注释
用#开始一个注释
#开头的注释,一般是写在代码之前表示行注释。
’‘’
这中间的是文档字符串,代表的是多行注释。
‘’‘
程序的输入和输出
控制台是一种人和计算机交互的最基础方式
但是日常生活中却不常用,更常见的交互方式,图形化界面
图形化界面的程序编写起来并不容易
课堂上还是使用控制台的方式来进行交互
像这样的格式化打印字符串,是一种将变量或表达式的值插入到字符串中的方法,这样可以创建动态的、变化的输出。Python提供了多种字符串格式化的方法,
像格式化打印字符串很多编程语言都进行了各自的探索,
像C语言中使用printf函数,同时使用使用%d,%s这样的占位符
格式化字符串的实质作用就是在对应的位置将表达式所代表的值放进代码中{主打一个替换的作用},格式化字符串的意义就在于可以对代码中表达式所代表的数据进行修改,就可以实现代码中所有的表达式的值就都可以进行替换,而不需要一个一个的进行修改,
如上图所示,使用input函数向控制台输入的数据类型是str类型,也就是字符串类型。
如果只是想显示一个读取到的结果,那么字符串类型的数据就无所谓了。
如果想利用读取到的内容进行一个数据的运算,那么这里面就要涉及到数据类型的转换了。
如上图所示,可以使用数据类型()在()中填入相对应的变量,将这个变量的类型进行修改。
运算符
算术运算符
+ - * / %(%)**(**表示乘方)//(//)
先算乘方,然后算乘除,最后算加减,如果运算过程中想修改默认的运算顺序,就需要加上()
在python中,0不能作为除数。
python语言中除法的第一个问题。
有些编程语言中,
/整数0也是会抛出异常
/浮点数0会得到无穷大
而python都认为是除0异常
除法的第二个问题
截断的问题~整数/整数,如果除不尽,得到的就是小数,不会出现截断的情况。
除了python之外,大部分的编程语言,都是整数除以整数,结果还是整数。
%求余数
小学二年级数学的问题
7除以2,商是3,余数是1,得到的余数一定是小于除数的。
**进行乘方运算
既能够支持整数次方,也支持小数次方(开方运算)
//表示地板除法(取整除法) 会针对计算的结果进行向下取整的操作
如上图所示,7//2时向靠近0的方向取整。
-7//2时向远离0的方向取整。
关系运算符
如上图所示,当我们使用关系操作符时,其结果往往使用True或者False来反应结果的正确与否。
关系运算符就是在比较两个操作数之间的大小,相等这样的关系
<
>
<=
>=
==比较相等(是否相等)
!=是否不相等
1.关系运算符对应的表达式,值是布尔类型
表达式符合要求,为真
不符合要求,为假
2.关系运算不光可以针对数字进行比较,还能够比较字符串
对于浮点型数据使用关系运算符
如上图所示,python中支持这种连续小于的写法,判定a-b既是<0.000001又是大于-0.000001
逻辑运算符
and 并且 {两则操作数均为True,表达式的值为True ,否则为False(一假则假)} 逻辑与,表示并且
or 或者 {两侧操作数均为False ,表达式的值为False,否则为True (一真则真)} 逻辑或,表示或者
not 逻辑取反 {只有一个操作数,操作数为True ,则返回False为False则返回True}逻辑非,逻辑取反
在python中a<b<c等价于a<b and b<c
逻辑运算符中的重要细节:短路求值
对于and 操作来说,如果左侧表达式为False,那么整体的值一定是False,右侧表达式不必求值。
对于or操作来说,如果左侧表达式为True,那么整体的值一定是True,右侧表达式不必求值!
即对于and和or来说,先判断左侧的值。
赋值运算符
(1)=的使用
=表示赋值,这个我们已经用过很多次了,注意和==区分
=除了基本的用法之外,还可以同时针对多个变量进行赋值
链式赋值
a=b=10
多元赋值
a,b=10,20
可以利用多元赋值,一步完成交换操作
在进行符合运算的时候必须保证,变量是被定义过的,比如上述代码中,如果将a=0注释掉,然后去执行a+=1这个操作会报错,因为a+=1这个操作的前提是a必须是被读取过的值。
python中不支持a++ --a 这样的自增自减操作的!!
++a之所以没有语法报错,是python解释器把+当成了正号。
--a也是不会报错,把-当成了负号,负负得正,最终的值仍然保持不变
但是后置++和后置--都是语法上报错的。
使用a+=1已经很方便的完成自增了