Python基础语法(一)

目录

常量和表达式

变量

求方差:

变量命名

规则

驼峰命名:

蛇行命名:

变量的类型

整数int:

浮点数(小数)float:

字符串string(str):

字符类型:

布尔类型bool:

动态类型:

静态类型:

类型的意义:

注释

输出到控制台

直接打印:

格式化字符串:

从控制台输入

运算符

算术运算符

关系运算符

字符串内容的确认比较:

针对浮点数:

比较浮点数的方法:

逻辑运算符

赋值运算符

其他运算符

语句

条件语句

缩进和代码块

 练习

判断奇偶数:

判断正负数:

判断闰平年:

空语句

循环

while循环

for循环

break和continue


常量和表达式

C/Java中,整数除以整数结果还是整数,并且会把小数部分省掉

Python中,2/3=>0.6666,而不是0

编程中一般没有四舍五入原则,用的是浮点数IEEE754标准,在内存中表示浮点数的时候,可能会存在微小的误差

形如1+2称为表达式,表达式的结果称为 表达式的返回值,1 2 3这样的数字称为 字面值常量

分号:

Python中分号可有可无

若将多个语句写到同一行,必须加分号(不推荐)

变量

求方差:

变量用来保存中间结果,可以视为一块用来存储数据的空间,这个空间对应到“内存”这样的硬件设备上

变量命名

规则

由数字、字母、下划线组成,且数字不能放在开头

驼峰命名:

出了第一个单词的首字母之外,后续每个单词的首字母大写

        personInfo

        totalCount

蛇行命名:

单词之间使用下划线来进行分割

        person_info

        total_count

在公司里开发商业程序,一般都会有明确的商业规范

变量的类型

type(a)即可查看a的类型

Python中变量的类型,不需要在定义变量的时候显示声明,只是依靠初始化语句

        不支持 int a=10这种形式,若非要定义类型可采用 a:int=10

整数int:

Python中的int能表示的数据范围为无穷大,可以根据数据的大小,自动扩容,因此Python中没有long、short、byte这些类型

浮点数(小数)float:

C++/Java中,float是四个字节(32个bit),也叫做“单精度浮点数”,表示的范围小精度低,因此存在double,且平时主要用的都是double

Python里的float就是双精度浮点数,等同C++/Java里的double

字符串string(str):

Python中使用英文的单引号或者双引号或者三引号 将一系列字符引用起来,构成字符串

有重复的时候可以单双引号同时使用

可以通过len(a)来求字符串长度

字符串之间的 + 意味着拼接操作 , 数之间的 + 意味着算术运算 , 不能把字符串和数字之间相加

字符类型:

Python中只有字符串类型,没有字符类型

        'a'是长度为1的字符串

正因为Python中没有字符类型,所以'a'和"a"(单引号和双引号)都可以表示字符串

C++和Java有单独的字符类型

        因此单引号表示字符

        双引号表示字符串

布尔类型bool:

取值只有真和假 , 因此布尔类型主要用于逻辑判定、命题

真True 假False ( Python中首字母大写, Java和C++中小写)

如果把布尔类型的值和整数进行算术运算,此时会把True当做1,把False当做0,可以但是没意义

        C/C++/Python可以

        Java不支持整数和布尔混合运算

动态类型:

变量的类型可能会随着程序的运行发生改变,而不是随着编码而改变

Python里,声明的时候,写或不写类型没有影响

静态类型:

如C++、Java,声明类型后,变量的类型始终不变,如果尝试改变,编译阶段就会报错

类型的意义:

1、不同的类型占用的内存空间(字节)是不同的

        int默认4个字节,但是当想表达的数超过四个字节的时候可以动态扩容

        float固定8个字节

        str是变长的

        bool一个字节就够

2、不同的类型对应的操作也不同

注释

注释行:以#开头

文档字符串:两行'''或者"""包含在内,可以被Python解释器识别

批量注释:Ctrl + /

输出到控制台

控制台是一种人和计算机交互的最基础的方式

日常常用图形化界面进行交互,但是图形化界面的程序编写并不容易

直接打印:

        print(a)

格式化字符串:

        prin( f "a = " {a}) 

        f-string,此处的f为format,这时就可以使用{ }这样的语法,往字符串里嵌入变量或者表达式

像格式化打印字符串,很多编程语言都进行了探索

        C 采用printf,使用%d、%s这样的占位符

        C++采用cout<<

        Java采用字符串拼接,允许字符串和其他类型直接拼接

        Python采用f-string

从控制台输入

input执行的时候会等待用户输入

input返回的是一个字符串str

        如果不进行其他操作,只是拿到用户的输入,并打印,此时就按照str打印即可

        如果要进行算术计算,就需要把读到的str转换成int,如果不转换就相加,则结果就只是简单地字符串拼接

        类型转换可以使用a = int(a)

练习:输入三个小数,求平均值

运算符

算术运算符

0不能作为除数

整数除以整数,如果除不尽不会截断,得小数

**乘方/开方

//地板除法(取整除法),会对计算结果向下取整(取小的)

        7//2=3

        -7//2=-4

关系运算符

不仅可以比较数字,也可以比较字符串大小,这里采用字典序,先看首字母在字母表上的顺序,越靠前越小,比较得出大小结果,如果相等,继续比第二位

针对中文比较大小没有意义

联系人通讯录的排序方式,要使用第三方库才可以实现,Python不支持这样比较

字符串内容的确认比较:

C:strcmp,如果直接使用==,本质上是在比较两个字符串首元素地址

Java:equals,如果直接使用==,本质上是在比较两个字符串是否是同一个对象

以上两种是一个小众行为,大部分语言遵守的规则是类似于Python的

Python:直接使用==和!=来比较字符串内容相同

针对浮点数:

浮点数在内存中的存储和表示,是可能存在误差的,这样的误差在算数计算中可能会被放大,从而导致==误判 

比较浮点数的方法:

作差:看差值是否小于预期的误差范围之内

Python中支持连续比较的写法,C或者Java都是不支持的

逻辑运算符

C++或者Java:

        && 逻辑与 并且

        || 逻辑或 或者

        !逻辑非 逻辑取反

Python:

        and 并且

        or 或者

        not 逻辑取反:位于表达式之前

短路求值:大部分编程语言都有

        对于一个表达式来说,若左侧已经不满足条件后,右侧不继续求值

        一旦右侧求值了,能看到代码出现异常

赋值运算符

链式赋值

        a = b = c

        可以但是不建议

多元赋值

        a , b = 10 , 20

        方便两个变量的值互换,不用使用tem

也可以完成一个函数返回多个值的操作

Python中不支持++、--这样的自增操作

        前置没有报错是因为Python解释器当成了正负号

其他运算符

身份运算符:is,is not

成员运算符:in,not in

位运算符:&,|,~,^,<<,>>

语句

条件语句

没有switch

C++:

Python:

if 后的条件语句无括号,且用冒号作为结尾

多条件分支else if 改为elif

if/else命中条件后要执行的语句块,使用缩进而不是{ }

缩进和代码块

Python中缩进不能随意更改,分级缩进,多重条件嵌套

C++/Java没有硬性要求

 练习

判断奇偶数:

如果代码为判断余数是否为1,则此代码在C++/Java中就会出现错误,因为负奇数计算出余数为-1,不是1,而在Python中是1

判断正负数:

判断闰平年:

空语句

错误:

应加一行空语句占位:

循环

while循环

练习:

for循环

for 循环变量 in 可迭代对象

      循环体

range是一个内建函数,起到的效果就是得到一个“可迭代对象”,其中包含一些整数

        range(beg , end)相当于[beg , end),是一个前闭后开区间

        range第三个数据为步长,也就是差值,可以为负数

练习:

当前有个内建函数叫sum,自己定义的变量和内建函数冲突了,虽然不影响运行,但是代码后面就无法使用内建函数sum

使用shift+F6 修改代码,会自动把所有需要修改的名字都统一替换了

break和continue

continue:立即结束当前循环,进入下次循环,即跳过一次循环

break:立即结束整个循环

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值