python相关的编码,运算
一 字符串的格式化
python中使用占位符%来实现。
name=input('name:')
age=input('age:')
hobby=input('hobby:')
print('%s的年龄是%s,喜欢%s' %(name,age,hobby))
输出结果为:
name:Alex
age:87
hobby:egon
Alex的年龄是87,喜欢egon
如果打印%这个字符,需要在%前面再加一个%。
例如:
print('%s的学习进度是50%%' %'Mr3')
结果:
Mr3的学习进度是50%
二 二级制以及编码
计算机是本质是无数多的二极管电路。1代表高电平,0代表低电平。电脑简单,容易识别,所以电脑都是采用二进制。
最开始美国发明计算机的时候,根据美国自己用的所有字母符号,编写了ASCII码,讲道理,美国人自己用是没有问题的。ASCII码是由1个字节8位组成,但其实最头上一位,并没用用到,所有最头上一位是0。有效的一共是0-127,一共128个。
随之计算机的广泛应用,ASCII码远远不能满足应用。为了解决这一现象,unicode万国码应运而生。unicode采用4个字节32位,一共有4294967296变化,在目前和将来一段时间内,可以满足要求。
uncode解决了全世界范围内所有语言计算机都能识别的问题,但是unicode有一个弊端,就是空间浪费严重。比如‘A’在ASCII中用01000001表示,但是在unicode中用00000000 00000000 00000000 01000001,相对而言,前三个字节,完全没有用处。
为了解决unicode空间浪费严重的情况,有能包含全世界所有的语言,utf-8作为一个优化产生了。在utf-8中,一个汉字是3个字节,一个英文字母占用一个字节,这样就节省了大量的空间。
中国人自己用的编码是GBK,包含常用汉字及常用的英文字母。GBK中一个汉字占用两个字节。
P.S unicode只在内存运算中存在,硬盘存储及网络传输都不会采用unicode格式。
GBK和utf-8两者之间是不能直接转换,必须通过unicode,gbk格式转为unicode格式,然后再从unicode转为utf-8格式,unicode相当于一个中介了。
单位换算:
1个0或者1个1,占1位,即1bit。
1Bytes(字节)=8bit
1KB=1024Bytes
1MB=1024KB
1GB=1024MB
1TB=1024GB
理论说法:
位(bit):计算机里最小的表示单位。
字节(byte):计算机里最小的存储单位。
三 基本的运算
逻辑运算。
逻辑运算如果没有括号,运算顺序是从左到右。
逻辑运算中有一个核心思想——短路裸机。
表达式从左到右,如果or的左侧是True,则短路or后面所有运算。
表达式从左到右,如果and的左侧是False,则短路后面所有and运算,直到遇到or,输出and的左侧表达式到or的左侧表达式,并参与接下来的逻辑运算。
如果or左侧是False,或者and左侧是True,不能使用短路逻辑。
博文地址:http://www.cnblogs.com/an9wer/p/5475551.html
例如:
if 1>2 and 1<2 or 1<2:
print('hello world')
结果就是
hello world
原因就是and左侧 1>2 是False,短路后面所有and运算,直到 or, 接下来就相当于判断逻辑运算 1>2 or 1<2 ,很明显,结果为True,判定条件为真。
逻辑运算一个小忽悠——逻辑运算在进行赋值的时候,起决定性作用的一侧如果是数字,字符串可以直接赋值,而不是变为布尔值后赋值。
a=1<2 and 'abc'
print(a)
输出: 因为 and 左右两侧必须同时为True,and右侧 ‘abc’直接赋值给了a。同理 如果a=1<2 and 5,print(a),结果为 5
abc
0如果在决定性位置,也是直接赋值。
a= 0 and 1<2
print(a)
a=1<2 and 0
print(a)
以上两种情况都是输出:0
a=1 and 1<2
print(a)
输出: 因为 1 不在and逻辑运算的决定性位置。 起决定性位置的是 1<2,所以a=True
True
同理,以上规律对 or 也成立。
a=1 or 1>2
print(a)
输出: 1 因为1 的布尔值是True,在 or 的左侧,起决定性作用,数字直接赋值。
a=1<2or 1
print(a)
输出: or 的左侧 比较运算的布尔值是True,把 1 短路掉了。布尔值True赋值给了a。
True
and 和 or 结合起来,也就很容易理解了。
a=0 and 3>2 or 7
输出:7
a=1 and 3>2 or 7
输出:
True
成员运算
in not ,多采用判断语句,返回值为布尔值。应用的地方比较多,很灵活。
数值运算
+ - * / % ** //
在python2 与python3中,有区别都是除法运算。
比如5/2
在python2中,只会取到整数,余数不取。
而在python3中,余数会取到。
如果python2 中想要取到余数,要在开头加一句,from __future__ import division。
python相关的编码,运算的更多相关文章
- 剑指offer用位运算实现两个数相加,及python相关的位操作
题目:写一个函数,求两个整数之和,要求在函数体内不得使用+.-.*./四则运算符号. 代码: # -*- coding:utf-8 -*-class Solution: def Add(self ...
- python 相关编码[转]
python 相关编码[转] 三篇文章,导航:(一)(二)(三) (一) 怎么避免UnicodeEncodeError: ‘ascii’ codec can’t…类似的错误? 1.首先在py文件头 ...
- 【Python五篇慢慢弹(5)】类的继承案例解析,python相关知识延伸
类的继承案例解析,python相关知识延伸 作者:白宁超 2016年10月10日22:36:57 摘要:继<快速上手学python>一文之后,笔者又将python官方文档认真学习下.官方给 ...
- Python基础-字符编码与转码
***了解计算机的底层原理*** Python全栈开发之Python基础-字符编码与转码 需知: 1.在python2默认编码是ASCII, python3里默认是utf-8 2.unicode 分为 ...
- Python的字符编码
Python的字符编码 1. Python字符编码简介 1. 1 ASCII Python解释器在加载.py文件的代码时,会对内容进行编码,一般默认为ASCII码.ASCII(American St ...
- 学习笔记之Python最简编码规范
Python最简编码规范 - 机器学习算法与Python学习 https://mp.weixin.qq.com/s/i6MwvC4jYTE6D1KHFgBeoQ https://www.cnblogs ...
- Python 常用 PEP8 编码规范
Python 常用 PEP8 编码规范 代码布局 缩进 每级缩进用4个空格. 括号中使用垂直隐式缩进或使用悬挂缩进. EXAMPLE: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 ...
- 自己用 python 实现 base64 编码
自己用 python 实现 base64 编码 base64 编码原理 二进制文件中包含有很多无法显示和打印的字符,二进制的数据一般以 ASCII 码形式(8 bit,即一个字节)存储,8 bit 可 ...
- Python运算符和编码
Python运算符和编码 一.格式化输出 现在有以下需求,让⽤户输入name, age, job,hobby 然后输出如下所⽰: ----------info of dogfa---------- n ...
随机推荐
- detection in video and image
video中的detection,背景更加复杂,目标更加不聚焦,同时由于图片分辨率低于图像,因此更加难做. image中的Detection,背景相对简单些,目标更加聚焦,同时图片分辨率高,因此更加容 ...
- npm 常用指令 使用指令删除 node_modules 包
查看 npm 命令 npm help 全局命令参数 -g npm install -g 安装全局 npm uninstall -g 卸载全局 全局node包中 i5ting_toc 这个包可以把md文 ...
- mysql 5.7 编译安装脚本。
此脚本尽量运行在centos 服务器上面,用于编译安装mysql 5.7 将此脚本和相应的软件 都放到/usr/local/src 目录下面 由于不能上传附件 所以需要把cmake-3.9.6.ta ...
- zabbix 密码忘记了如何恢复
1.进入数据库 2.使用zabbix的数据库 use zabbix: 3.查看表信息 show tables; 4.搜索users表 select * from users; 5.修改userid为1 ...
- Docker学习笔记--2 镜像的创建
如果我们需要在Docker环境下部署tomcat.redis.mysql.nginx.php等应用服务环境,有下面三种方法: 1,根据系统镜像创建Docker容器,这时容器就相当于是一个虚拟机,进入容 ...
- Diycode开源项目 搭建可以具有下拉刷新和上拉加载的Fragment
1.效果预览 1.1.这个首页就是一个Fragment碎片,本文讲述的就是这个碎片的搭建方式. 下拉会有一个旋转的刷新圈,上拉会刷新数据. 1.2.整体结构 首先底层的是BaseFragment 然后 ...
- 48、android代码架构总结
之前是按功能模块进行分类,现在随着功能模块越来越多,代码层次不再清晰,所以修改了工程结构: 之前: 经过修改现在: 1.更严谨的遵循mvc架构 bean目录存放的是数据模型 ui存储的是activit ...
- ogre3D学习基础13 -- 键盘控制网格动画mesh
以上一节为蓝本,这里增加一点难度,添加了四个节点,增加键盘控制移动速度,使用bool变量控制是否移动. 第一,要增加键盘控制,那就使用OIS::KeyListener,在监听器里添加一个父类KeyLi ...
- Cygwin访问盘符、使用别名、彩色显示、使用adb命令
Cygwin是一个在Windows平台上运行的类UNIX模拟环境.安装过程我就不重复造轮子了,百度一下即可.其中安装的时候需要装哪些包,要看你用到哪些.比如我就是只用adb shell,所以全部默认安 ...
- Android ListView用法
写了一个简单的示例来说明ListView的用法:给定一个单词,下面有四个含义,找出正确的一个,无论是否成功,则会跳转到下一个单词:主要用到的知识有: findViewById(). ListView ...