Python编码

初始编码:

电脑的传输,还有储存,实际上都是010101010

ASCII码:

(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),2**8 = 256,所以,ASCII码最多只能表示 256 个符号。

assic码最左边一位都是0,设计者预留出来的一位,方便后期拓展。

00000001 8位bit == 1个字节(byte)     1024byte(字节) == 1kb     1024kb == 1MB     1024MB == 1GB     1024GB == 1TB

其他编码:

为了处理汉字,程序员设计了用于简体中文的GB2312和用于繁体中文的big5。 
GB2312 支持的汉字太少。GBK正式国家标准收录27484个汉字,同时还收录了藏文、蒙文、维吾尔文等主要的少数民族文字。现在的PC平台必须支持GBK,对嵌入式产品暂不作要求。所以手机、MP3一般只支持GB2312。

从ASCII、GB2312、GBK 到GB18030,这些编码方法是向下兼容的,即同一个字符在这些方案中总是有相同的编码,后面的标准支持更多的字符。在这些编码中,英文和中文可以统一地处理。区分中文编码的方法是高字节的最高位不为0。GB2312、GBK到GB18030都属于双字节字符集 (DBCS)。

Unicode:

显然ASCII码无法将世界上所有的文字和符号全都表示,每个国家用自己的编码沟通起来又特别麻烦。所以一种可以代表所有字符和符号的编码诞生了,即Unicode,也叫做统一码、万国码、单一码。 
Unicode是为了解决传统的字符编码局限性而产生的,它为每种语言每个字符设定了统一并且唯一的二进制编码,规定所有的字符和符号最少由16位(2字节)来表示。注:此处说的的是最少2个字节,可能更多。

UTF-8:

是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存... 汉字最多有9万多个,用3个字节表示。

详细讲解 
http://www.cnblogs.com/yuanchenqi/articles/5956943.html

python2解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill),而python3对内容进行编码的默认为utf-8。

总结:

Python2默认编码是ASCII码,无法识别中文

Python3默认编码是utf-8

解决办法:

python2首行

#!/usr/bin/env python

# -*- coding:utf-8 -*-

变量

变量是什么?

变量:就是将一些运算的中间结果暂时储存到内存中,以便后续代码调用

命名规则:

1,必须由字母、数字、下划线任意组合,且不能以数字开头

2,不能是Python中用到的关键字

3,变量具有可描述性

4,不能使用中文

推荐定义方式:

#驼峰体
AgeOfOldboy = 56
NumberOfStudents = 80 #下划线
age_of_oldboy = 56
number_of_students = 80

常量

变量就是一直不变的量,必须全用大写

#示例
BIRTH_OF_CHINA = 1949 

注释

作用:方便自己和他人理解代码

单行注释:#被注释内容

多行注释:‘’‘注释内容’‘’ 或者 “”“注释内容”“”

赋值:  等号右边的赋值给等号左边

用户交互

1,等待输入

2,将你输入的内容赋值给了前面的变量

3,input出来的数据type都是str

name = input('请输入你的名字: ')
age = input('请输入你的年龄: ')
print('姓名 '+name,'年龄 '+age) #输出
请输入你的名字: Marilyn
请输入你的年龄: 24
姓名 Marilyn 年龄 24 

缩进

Python的缩进有以下几个原则:

  1. 顶级代码必须顶行写
  2. 同一级别的代码,缩进必须一致
  3. 官方建议缩进用4个空格

流程控制

假如把写程序比做走路,那我们到现在为止,一直走的都是直路,还没遇到过分叉口,想象现实中,你遇到了分叉口,然后你决定往哪拐必然是有所动机的。

你要判断那条岔路是你真正要走的路,如果我们想让程序也能处理这样的判断怎么办? 很简单,只需要在程序里预设一些条件判断语句,满足哪个条件,就走哪条岔路。这个过程就叫流程控制。

if...else 语句

#单分支
if 条件:
满足条件后要执行的代码 #双分支
if 条件:
结果1
else:
结果2 #多选条件
if 条件1:
结果1
elif 条件2:
结果2
elif 条件3:
结果3
else:
结果 
#常用于用户登录验证、猜数字之类的游戏

my_age = 23
user_input = int(input("input your guess num:"))
if user_input == my_age:
print("Congratulations, you got it !")
elif user_input < my_age:
print("Oops,think bigger!")
else:
print("think smaller!")

while循环

有一种循环叫做死循环,一旦触发,就不会停下来。建议死循环还是少写为好。

count = 0
while True:
print("你是风儿我是沙,缠缠绵绵到天涯...",count)
count +=1
#输出
你是风儿我是沙,缠缠绵绵到天涯... 542329
你是风儿我是沙,缠缠绵绵到天涯... 542330
你是风儿我是沙,缠缠绵绵到天涯... 542331
你是风儿我是沙,缠缠绵绵到天涯... 542332
你是风儿我是沙,缠缠绵绵到天涯... 542333
。。。。。

终止循环的两种方式:

1,改变条件,使其不成立

while flag:
print(count)
count = count + 1
#终止循环
if count > 6:
flag = False
print('game over!')

2.break

count =1
while count <=6:
print(count)
break
#下面的不再执行,结果为1
count = count +1

用Python计算1+2+...+100的结果

count = 1
sum = 0
while count <= 100:
sum = sum + count
count =count +1
print(sum) #输出
5050

for 循环

continue:跳出本次循环,直接进入下一次循环
for i in range(10):
if i<5:
continue #不往下走了,直接进入下一次loop
print("loop:", i ) break:跳出整个循环 跳出当前层的整个循环
for i in range(10):
if i>5:
break #不往下走了,直接跳出整个loop
print("loop:", i ) pass:什么都不做,跳过本次循环,继续执行代码
for i in range(10):
if i==5:
pass #跳过本次循环,继续执行
print("loop:", i )

while ... else ..语句

与其它语言else 一般只与if 搭配不同,在Python 中还有个while ...else 语句

while 后面的else 作用是指,当while 循环正常执行完,中间没有被break 中止的话,就会执行else后面的语句

count = 0
while count <= 5 :
count += 1
print("Loop",count)
else:
print("循环正常执行完啦")
print("-----out of while loop ------") #输出
Loop 1
Loop 2
Loop 3
Loop 4
Loop 5
Loop 6
循环正常执行完啦
-----out of while loop ------

格式化输出

%s是字符串占位符, str,传进来任何东西都会转为字符串

%d是数字占位符, digital,如果是%d,就代表你必须只能输入数字啦

%f 传进来任何东西都会转为浮点数

%r 非转义,显示为原生字符 raw string 例如 \n 直接显示为\n, 不会显示为换行

小知识点:

1,想要在格式化输出中间要一个单纯的%,就在前面加一个%,如3%%

2,input接收的所有输入默认都是字符串格式,所以有事需要把str转为int,如int(age)

name = input('请输入姓名:')
age = input('请输入年龄:')
height = input('请输入身高:')
msg = "我叫%s,今年%s岁,身高%s,学习进度3%%" %(name,age,height)
print(msg) #输出
请输入姓名:Marilyn
请输入年龄:21
请输入身高:164
我叫Marilyn,今年21岁,身高164,学习进度3%

示例:

自定义输出文本格式,只需要把要打印的格式先准备好,需要用户输入的用占位符即可。

name = input('请输入姓名:')
age = input('请输入年龄:')
sex = input('请输入性别:')
job = input('请输入工作:')
msg = '''
---------info of %s----------
Name: %s
Age: %d
sex: %s
job:%s
---------end---------
'''%(name,name,int(age),sex,job)
print(msg) #输出
请输入姓名:Marilyn
请输入年龄:21
请输入性别:female
请输入工作:It
---------info of Marilyn----------
Name: Marilyn
Age: 21
sex: female
job:It
---------end---------

另一种比较高大上的格式化输出,即format,建议以后使用这种。

#format的三种玩法 格式化输出
res='我的名字{},年龄{}, 性别{}'.format('Marilyn',21,'female')
print(res)
我的名字Marilyn,年龄21, 性别female res='我的名字{0},年龄{1}, 性别{2}, 再说一遍名字{0}'.format('Marilyn',21,'female')
print(res)
我的名字Marilyn,年龄21, 性别female, 再说一遍名字Marilyn res='我的名字{name},年龄{age}, 性别{sex}, 再说一遍名字{name}'
.format(name='Marilyn',age=21,sex='female')
print(res)
我的名字Marilyn,年龄21, 性别female, 再说一遍名字Marilyn

Python编码、流程控制、格式化输出的更多相关文章

  1. python之流程控制升级

    python之流程控制:if elif else  while  for 一.流程控制之if: 1.1为什要有if判断:让计算机能像人一样代替人类工作,那么计算机应该有对于事务的读错,真假,是否可行的 ...

  2. Python小代码_2_格式化输出

    Python小代码_2_格式化输出 name = input("name:") age = input("age:") job = input("jo ...

  3. Python的三种格式化输出

    今天刚学了python的三种格式化输出,以前没接触过这么有趣的输出方式,现在来分享一下. #!/user/bin/env python#coding:utf-8#三种格式化输出 #第一种格式化输出na ...

  4. Python之流程控制——if...else...

    Python之流程控制--if...else... 一.流程控制 假如把程序比做走路,那我们到现在为止,一直走的都是直路,还没遇到过分岔口.当遇到分岔口时,你得判断哪条岔路是你要走的路,如果我们想让程 ...

  5. Python之流程控制——while循环

    Python之流程控制--while循环 一.语法 while 条件: 执行代码 while就是当的意思,它指当其后面的条件成立,就执行while下面的代码. 例:写一个从0打印到10的程序 coun ...

  6. python - 用户交互/数据类型/格式化输出/运算符/流程控制单双多分支

    python:用户交互: 等用户输入,做反应: username=input("username:")password=input("password:")pr ...

  7. Python基础一(格式化输出、流程控制)

    (1)格式化输出(%% 第一个% 转译) # 格式化 输入 输出 name = input("Name:") age = input("Age:") job = ...

  8. python -- while循环,格式化输出,运算符,初识编码

    一.while循环 1.语法 while   条件: 循环体(结果) 如果条件为真,则直接执行结果),然后再次判断条件,知道条件为假,停止循环. while True: print('你是谁呢') 退 ...

  9. 04 Python之while循环/格式化输出/运算符/编码

    1. while循环 while 条件: 循环体(break,continue) else: 循环体(break,continue) break:彻底干掉一个循环,直接跳出. continue:停止当 ...

  10. python之路--while, 格式化输出, 编码

    一 . while循环 while 条件: 循环体(break, continue) while True: content = input('你想对我说什么:,输入你最帅退出') if conten ...

随机推荐

  1. eclipse使用maven install 命令,生成war包中没有jsp/js/css的解决方法

    在pom.xml文件中添加如下11行代码就可以了. <build> <plugins> <plugin> <groupId>org.apache.mav ...

  2. 使用taobao cnpm 源解决npm无法安装module问题

    npm 安装nativescript时出现异常,一直停着不动.应该是源被墙了的问题可以使用淘宝仓库,执行下面的命令: alias cnpm="npm --registry=https://r ...

  3. 2017.10.19 java中的关键词 及软件开发的一些重要单词

    1.java中的关键词 ·final 最后的 (1)可以修饰表示该类不能被继承 (2)可以修饰方法不能被重写 ·sattic 静态的 类的 (1)修饰属性 可以通过类直接调用 可以通过对象调用 (2) ...

  4. LeetCode(Two Sum)

    一.题目要求 Given an array of integers, return indices of the two numbers such that they add up to a spec ...

  5. Java关键字transient和volatile小结

    转自:http://heaven-arch.iteye.com/blog/1160693 transient和volatile两个关键字一个用于对象序列化,一个用于线程同步,都是Java中比较高阶的话 ...

  6. Linux-日期时间相关命令

    获取当前时间 date [root@VM_0_3_centos ~]# date Mon Mar 18 19:13:33 CST 2019 [root@VM_0_3_centos ~]# date相关 ...

  7. echarts零基础快速入门

    第一步:得到这个dom对象.然后进行各种操作. var myChart = echarts.init(document.getElementById('item1')); 第二步:所有的配置项全部放在 ...

  8. 最小生成数kruskal算法和prim算法

    定义 连通图:在无向图中,若任意两个顶点vivi与vjvj都有路径相通,则称该无向图为连通图. 强连通图:在有向图中,若任意两个顶点vivi与vjvj都有路径相通,则称该有向图为强连通图. 连通网:在 ...

  9. 输入cin对象的用法

    #include<iostream> using namespace std; int main() { int carrots ; cout << "How man ...

  10. https://www.cnblogs.com/gaoxiang12/p/3695962.html

    https://www.cnblogs.com/gaoxiang12/p/3695962.html