博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python 基础二:运算符和编码
阅读量:6477 次
发布时间:2019-06-23

本文共 5310 字,大约阅读时间需要 17 分钟。

while 格式化输出

第一种写法:

name = input('请输入你的名字:')age = int(input('请输入你的年龄:'))score = int(input('请输入你的成绩:'))msg = '我叫%s,今年%d岁,成绩为%d分'%(name,age,score)print(msg)
格式化输出第一种写法

 

第二种写法

#第二种写法:name1 = input('请输入你的名字:')age1 = input('请输入你的年龄:')score1 = input('请输入你的成绩:')msg = '我叫%(name)s,今年%(age)s岁,成绩为%(score)s分'\%{
'age':age1,'name':name1,'score':score1}print(msg)
格式化输出第二种写法

Ps:

msg = '我叫%s,今年%d岁,学习进度为2%%' %('ming',18)print(msg)

Python运算符

算术运算符

常用的算术运算符包括     +  :两个对象相加

                                         -  :两个数相减

                                         *  :两个数相乘

                                         /  :两个数相除

                                        % :两个数相除取余数

                                         ** :幂,a**b即a的b次方幂

                                         //  :两个数相除取商的整数部分,如9.0//2.0结果为4.0

Ps:Python2.x 里,整数除整数,只能得出整数。如果要得到小数部分,把其中一个数改成浮点数即可。

比较运算符

常用的比较运算符包括      ==:等于,比较符号两边对象是否相等,相等则返回True

              !=:不等于,比较符号两边对象是否不相等,不相等则返回True

                                         <>:不等于,使用方法同上

             >   :大于,符号左边大于右边则返回True

               <    :小于,符号左边小于右边则返回True

               >=  :大于等于,符号左边大于等于右边则返回True

                                   <=  :小于等于,符号左边小于等于右边则返回True

赋值运算符

常用的赋值运算符包括 = ,+= ,-= ,*= ,/= ,**= ,//=。‘=’是简单的赋值,将等号右边赋值给等号左边。其他几种的意义类似,如 a += b 就是 a=a+b,其他符号用法和 += 类似。

逻辑运算符 

逻辑运算符包括 and   or    not   即逻辑运算中的与或非

and :a  and  b, 若a和b均为真则返回True,否则返回False

or    :a  or  b ,a和b全为假则False,否则返回True

not  : not  a  , a为真则返回False,a为假则返回True

#!/usr/bin/python# -*- coding: UTF-8 -*- a = 10b = 20 if ( a and b ):   print "1 - 变量 a 和 b 都为 true"else:   print "1 - 变量 a 和 b 有一个不为 true" if ( a or b ):   print "2 - 变量 a 和 b 都为 true,或其中一个变量为 true"else:   print "2 - 变量 a 和 b 都不为 true" # 修改变量 a 的值a = 0if ( a and b ):   print "3 - 变量 a 和 b 都为 true"else:   print "3 - 变量 a 和 b 有一个不为 true" if ( a or b ):   print "4 - 变量 a 和 b 都为 true,或其中一个变量为 true"else:   print "4 - 变量 a 和 b 都不为 true" if not( a and b ):   print "5 - 变量 a 和 b 都为 false,或其中一个变量为 false"else:   print "5 - 变量 a 和 b 都为 true"
逻辑运算符

结果如下:

1 - 变量 a 和 b 都为 true2 - 变量 a 和 b 都为 true,或其中一个变量为 true3 - 变量 a 和 b 有一个不为 true4 - 变量 a 和 b 都为 true,或其中一个变量为 true5 - 变量 a 和 b 都为 false,或其中一个变量为 false

运算优先级:not  >   and   >  or

逻辑运算符前后都是条件时,先判断高优先级,再判断低优先级,同一优先级从左往右判断。

逻辑运算符前后是数字时:x  or  y ,如过 x 为真,则输出为 x 的值 ,x 为假,则输出 y 的值。  如2  or  3 输出为2,0   or  3输出为3(0代表False)。

                                          x  and  y 输出的值和 or 相反,即 x 为真则输出 y 的值,x 为假则输出 x 的值,也就是 0。

 

成员运算符

成员运算符  in  和  not  in 

in       : a in b, 如果a在b序列里则返回True

not in :a  not in b,如果a不在b序列里则返回True

#!/usr/bin/python# -*- coding: UTF-8 -*- a = 10b = 20list = [1, 2, 3, 4, 5 ]; if ( a in list ):   print "1 - 变量 a 在给定的列表中 list 中"else:   print "1 - 变量 a 不在给定的列表中 list 中" if ( b not in list ):   print "2 - 变量 b 不在给定的列表中 list 中"else:   print "2 - 变量 b 在给定的列表中 list 中" # 修改变量 a 的值a = 2if ( a in list ):   print "3 - 变量 a 在给定的列表中 list 中"else:   print "3 - 变量 a 不在给定的列表中 list 中"
成员运算符

结果如下:

1 - 变量 a 不在给定的列表中 list 中2 - 变量 b 不在给定的列表中 list 中3 - 变量 a 在给定的列表中 list 中

 

身份运算符

is      :x is y ,判断x和y是不是一个对象,是则返回True

is not:x is not y ,判断x和y是不是不同对象,是则返回True

#!/usr/bin/python# -*- coding: UTF-8 -*- a = 20b = 20 if ( a is b ):   print "1 - a 和 b 有相同的标识"else:   print "1 - a 和 b 没有相同的标识" if ( a is not b ):   print "2 - a 和 b 没有相同的标识"else:   print "2 - a 和 b 有相同的标识" # 修改变量 b 的值b = 30if ( a is b ):   print "3 - a 和 b 有相同的标识"else:   print "3 - a 和 b 没有相同的标识" if ( a is not b ):   print "4 - a 和 b 没有相同的标识"else:   print "4 - a 和 b 有相同的标识"
身份运算符

结果如下:

1 - a 和 b 有相同的标识2 - a 和 b 有相同的标识3 - a 和 b 没有相同的标识4 - a 和 b 没有相同的标识

运算符优先级

**(指数) >    * / % //(乘,除,取模和取整除)   >    +-(加减)  >    比较运算符(<,>,>=,<=)    >   等于运算符  (<>,==,!=)   >    赋值运算符(=, %=,/=, //=, -=, +=, *=, **=)    >    身份运算符(is  ,  is not)    >     成员运算符(in ,  not in)    >逻辑运算符(and ,or,not)

编码历史

编码就是用特定位数的0和1代表特定字符。

计算机储存或者是传输文件,实际上是存储和传输的0和1的组合。

ASCII:因为最早的计算机诞生在美国,所以最早的编码方式是ascii码。ascii使用一个字节即8位,最大能对应2的8次方即256个字符,在计算机的发展前期在英文使用区域是足够使用的。

Unicode:后来,因为计算机的普及,越来越多的国家的语言需要编码,ascii码已经不足以存储这么多对应关系,于是ISO(国际标准化组织)组织创建了一个新的编码方式:万国

码unicode。万国码unicode码刚开始使用两个字节即16位来编码,后来因为不够用又扩展到4个字节即32位编码。

Utf-8:万国码unicode因为编码方式的原因,资源浪费严重,所以后来又升级成utf-8的编码方式,英文字符全部用一个字节即8位来表示,欧洲国家的字符则用两个字节即16位来表

示,亚洲国家的字符则用3个字节即24位来表示,这样大大节约了带宽资源,所以utf-8很快成为全世界公认的编码方式。utf-8的8意思是它最少用8位来编码。

8位bit 8bit == 1bytes(字节)

1024bytes == 1kB

1024KB == 1MB

1024MB == 1GB

1024GB == 1TB

GBK:国标,只能中国人自己用,,一个中文用16位,两个字节表示。GBK的最后一个字母K的是Kuozhan的缩写。

 

编码进阶

id  函数查询内存地址

a = 'abc'print(id(a))#输出:2922965348736

is  函数判断内存地址

#在dos命令行下运行python下面代码s1='abc!'s2='abc!'print(s1 is s2)#输出:False

Python小数据池概念:int和str存在小数据池,即 Int 型数据在 -5—256之内的,则他们的内存地址一样。对于 str 型数据,由字母和数字,或者由两者任意组合组成,那么他们的内存地址是一样的。

#int 型i1=257i2=257print(i1 is i2)#输出:False#str型s1='a1b2c1234's2='a1b2c1234'print(s1 is s2)#输出:Trues1='a1b2c1234*'s2='a1b2c1234*'print(s1 is s2)#输出:False

文件的存储和传输:例如在unicode和utf-8和gbk之间,不同的编码方式不能互相识别对方的二进制编码方式,即解码会报错或产生乱码。另外,很重要一点,计算机文件传输和储存是必须使用非unicode得编码方式。而在Python3中,编码方式默认都是unicode,所以要把Python3的文件进行存储或传输,必须转码成其他编码方式才行。所以这里要引入另一个数据类型:二进制数据类型byte

byte:

  对于非中文: 表现形式(即我们在屏幕上看到的形式): b'alex'

  内部编码: utf-8 gbk,gb2312...(非unicode)可自行设定。

  对于中文: 表现形式: b'xe3\xf2\x36\xe3\xf2\x36\'

  内部编码: utf-8 gbk,gb2312...(非unicode) 可自行设定。

 

#byte的定义形式s = 'abcD's1 = b'abcD'print(s.capitalize())print(s1.capitalize())#输出:Abcd           b'Abcd'

 

把unicode编码形式的 str 数据转换成其他编码方式的byte数据,这里用到encode函数

#以utf-8和GBK为对象s = 'abcd'b = s.encode('utf-8')b1 = s.encode('gbk')print(s,type(s))print(b,type(b))print(b1,type(b1))#输出:abcd 
b'abcd'
b'abcd'
#对中文编码来说s = '中国'b = s.encode('utf-8')b1 = s.encode('gbk')print(s,type(s))print(b,type(b))print(b1,type(b1))#输出:中国
b'\xe4\xb8\xad\xe5\x9b\xbd'
b'\xd6\xd0\xb9\xfa'

 

转载于:https://www.cnblogs.com/banjiang/p/8330080.html

你可能感兴趣的文章
分布式文件系统HDFS 练习
查看>>
[04-01]css组合选择器
查看>>
DIV编辑器中当keydowm时获得内部其他元素的位置
查看>>
【实践】WCF 传输安全 1 前期准备之证书制作
查看>>
第八周
查看>>
ajax 请求
查看>>
修改开机启动等待时间(for Ubuntu12.10)
查看>>
IOS 推送-配置与代码编写
查看>>
用例设计方法及其覆盖率
查看>>
C#的默认访问修饰符
查看>>
koa2-connect-history-api-fallback 使用
查看>>
华硕笔记本进bios按哪个键 华硕手提电脑怎么进bios设置
查看>>
有关提交时出现的.suo文件出错的问题解决方法。
查看>>
DeDe缩略图路径的修改
查看>>
震动鼠标改造
查看>>
前端性能优化方案
查看>>
Uva 11464 偶数矩阵
查看>>
ADO.NET笔记——利用Command对象的ExecuteScalar()方法返回一个数据值
查看>>
利用键盘实现橡皮筋技术
查看>>
svn checkout 提示“由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。”解决方法...
查看>>