python的一些基础知识:基本的语法,字符串,长字符串,格式化字符串(四种方法),变量和对象的关系,类型转换,运算符

基本的语法

  1. 肯定严格区分大小写之类的
  2. 一行就是一条语句,每一条语句以换行结束
  3. 一条语句需要多行编写的时候,在一行的末尾以\结束,下一行和这行就是同一条语句
  4. python是严格缩进的,缩进代表的是代码块
  5. 在python中#表示注释
  6. python中使用变量是不需要声明的,直接给变量赋值就行了,而且python是动态类型的语言,可以为变量赋任何类型的值,赋值后又可以修改成任意类型的值
  7. python的数值分为三种:整数,浮点数,复数
    整数int
    在python中所有的整数都是int类型的,而且它不像其他语言那样有大小限制的,python的int类型是没有限制的,可以是一个无限大的整数,如果数字的长度过于长,还可以用下划线进行分割,例如a=45_46_45,这里a的值就是454645,编译的时候将_忽略了
    浮点数float
  8. python的不同进制的表示
    二进制:以0b开头
    八进制:以0o开头
    十六进制:以0x开头
  9. python的字符串

字符串

使用时需要用单引号(’’)或者双引号("")引起来,两者不能混合着用,相同的引号不能嵌套着用

长字符串

使用三个引号来表示长字符串,’’‘或者""",长字符串可以换行,而且还会保留文本中的格式
10. 转义字符
python可以使用(反斜杠)作为转义字符,例如:
\‘表示’
\“表示”
\t表示四个空格,就是一个tab键
\n表示换行
\\表示反斜杠
\uxxxx表示利用Unicode进行编码的,比如在Unicode编码里面,第0048个是H,如果你写a=’\u0048’,a就表示字符H.为什么是四个数字?因为Unicode编码里面用四位`进行编码

10. 格式化字符串(四种方法)

①:两个字符串可以进行加法连接,但是不可以和其他数据类型进行加法运算
②:print(变量1,变量2),这里打印后变量1和变量2也是拼接起来的,而且这里是没有数据类型限制的,两个变量什么类型都行,不同类型也可以
③创建字符串的时候可以指定占位符,例如:
a=‘hello%s’%变量 #这里就是用变量替换了字符串a的%s的占位符
%s #这个表示任意的占位符,在%s的位置可以填充字符串,整数,浮点数等等,
而且这里的占位符还可以做限制,例如%2.3s #这个表示这个占位符最少有两位,如果不足两位就在前面填充空格补完整到两位,如果超过三位就不要后面的
%f #这个是浮点数的占位符,这里的%4.1f 和上面的就有点区别了,4还是不够四位补空格,但是1就是小数点后面保留一位小数
%d #这个是整数的占位符
④格式化字符串,就是可以通过在字符串前面添加一个f来创建一个格式化字符串,在格式化字符串中是可以直接加入变量的,比如a=f’啦啦啦{x1}{x2}’ #这里的x1和x2是一个变量,什么类型都可以

  1. 字符串复制,就是将字符串和一个数字进行乘法运算,这时就会将字符串复制到那个数字的次数
  2. 布尔值(Boolean,在python里面简写成bool)
    一共有两个True和False,
    其实bool的数据类型也是属于整形,True相当于1,False相当于0,1+True等于2的
  3. None(空值),就什么都没
  4. 类型检查的函数:type() #这个函数传入一个变量,返回这个变量的数据类型
  5. 对象(object)
    python也是面向对象的语言,对象是内存中专门用来存储指定数据的一块区域,它实际就是一个容器,上面的数值,字符串,bool,None都是对象
  6. 对象的结构:对象里面都会存储这三种数据:id,type,value
    id: 就是这个对象的标识,每一个对象都只有一个唯一的id,如果要查看,可以通过id()函数来查看对象的id,这个id是由解释器生成的,一旦创建就永远不可能改变,在cpython中,id就是对象的内存地址
    type: python是强类型的语言,对象一旦创建,类型就不能修改
    value: 对象中存储的具体数据,可变对象的值可以改变,不可变对象的值不能改变,int ,str,Boolean…的值都是不可以改变的

17. 变量和对象的关系

在变量中不是直接将python的对象直接存储进去,而是存储对象的id,在python中,变量就好像给对象起了一个别名.
如果你执行了a=10 a=b a=20 #这时候b里面存储的值是没有改变的还是10,就是b里面的id没有变,所以python里面的变量是相互独立的,其中一个改变了不会影响其他的

18. 类型转换

不是说python是强类型语言吗?类型怎么还可以转换呢?
其实是这样的,类型转换不是改变这个对象本身的类型,而是创建一个新的需要的类型的对象,然后将当前对象的值赋值给新的对象的值
对于类型转换有四个函数int(),float(),str(),bool()
int() #将其他的对象类型转化成整型
规则:
True—>1 False---->0
浮点数就直接删了小数点后面的东西,直接取整
字符串,将合法的整数字符串转化成对于数字,不合法报错ValueError
其他的和int()差不多,说下bool()
bool()
将其他对象转化成布尔值,任何对象都可以转换成bool值,
规则:所有的表示空的对象都转化成False,例如0,none,其他的都转换成True

19. 运算符

算术运算符
数学中的±/就不说了,还有
// 表示整除,保留计算后的整数,返回一个整数,
** 表示幂运算,比如2 ** 3等于8
赋值运算符
=,+=,-=,
=,/=,**=,//=,%= #简单,不多说
注意一下:就是对于浮点数运算,返回的结果还是浮点数,比如10.0//4的结果是2.0
关系运算符
/>,/>=,/<,/<=,==.!= #不多说
注意一下:
①就是如果是两个字符串进行大于(等于)或小于(等于)的运算时,比较的是字符串对应的Unicode编码,比如’a’>‘b’ #False,因为a的编码在b的前面
如果字符串是多位的字母,这时就是逐位进行比较的,而且是前面如果比较出来大小,后面的就不再进行比较了,比如’5’<‘1546’ ,这里是False的,因为’5’和’1’比较,发现’5’比’1’大,所以就直接返回False,后面的不再进行比较了.利用这个特性,可以对英文的字符串进行按照字母排序,但是如果里面有中文就不行了,而且这样对中文排序好像也没什么特殊的意义

②这里的比较==和!=比较的是两个对象的value(值),而不是id,只要是值是一样的就返回True,比如(1 ==True) #这里返回的是True,因为他们两个的值都是1

③如果要想比较两个对象的id是否一样,有is和is not
is是比较两个对象是否是同一个对象,比较的是id
is not相反

逻辑运算符
and:逻辑与
逻辑运算的与运算
python的与运算是短路的与运算,如果第一个就是False了,就不会理第二个值是什么

or:逻辑或
逻辑运算的或运算
python的或运算也是短路的或运算,如果第一个就是True,就不会理第二个值是什么

not:逻辑非
对于布尔值是取反操作,
对于非布尔值是将它转化成布尔值再取反

非布尔值的与或运算
python对非布尔值进行与或运算的时候,python会将它们当作布尔值进行运算,最终会返回其中一个原值
与运算规则:本来就是找False,如果第一个值是False,就不会看第二个值,直接返回第一个值,否则返回第二个值
或运算规则:本来就是找True ,如果第一个值是True,就不会看第二个值,直接返回第一个值,否则返回第二个值

再python中独特的逻辑运算符用法:连着写,比如:
print(10<20<30) #True
这里相当于10<20 and 20<30

条件运算符(也叫三元运算符
语法:语句1 if 条件表达式 else 语句2
执行流程:先对条件表达式进行求值,
如果条件表达式是True,就执行语句1,并且返回执行结果
如果条件表达式是False,就执行语句2,并且返回执行结果
比如:求较大值a=23 b=26
max=a if a>b else b

运算符优先级
查表吧,不常用.(例如and比or高)

发布了133 篇原创文章 · 获赞 37 · 访问量 4723

猜你喜欢

转载自blog.csdn.net/qq_43416157/article/details/104319951