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. 【CCPC-Wannafly Winter Camp Day4 (Div1) D】欧拉回路(分类讨论)

    点此看题面 大致题意: 有一个\(n\)行\(m\)列的网格图,让你给每一条边设置一个通过次数(\(\ge1\)),使其成为欧拉回路,且通过次数总和最小. 初始化 首先,由于通过次数\(\ge1\), ...

  2. Hubtown(最大流)

    Hubtown 时间限制: 1 Sec  内存限制: 128 MB提交: 23  解决: 11[提交] [状态] [讨论版] [命题人:admin] 题目描述 Hubtown is a large N ...

  3. 2017.10.1 JDBC数据库访问技术

    4.1 JDBC技术简介 4.1.1 定义 JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的 java API,由一组类与接口组成,通过 ...

  4. JavaEE权限管理系统的搭建(二)--------聚合工程项目的创建和依赖关系

    本项目是一个聚合工程,所以要先搭建一个聚合工程的框架 搭建完成的项目结构图如下: 首先创建父项目:pom类型 子模块:web层的搭建,war类型 把这个两个目录标记为对应的类型 其他子模块:和serv ...

  5. 旧文备份:AVR读写EEPROM分析

    由于AVR的EEPROM写周期比较长(一般为毫秒级),因此在编程使用过程中要特别注意.对于读EEPROM没什么好说的,读一个字节的数据要耗费4个时钟周期,可以忍受,写就比较麻烦了,虽然放在EEPROM ...

  6. 批量删除xml文件中的<?xml version="1.0" ?>

    #!/bin/shcd 'home/usrname/'ls cd '/home/usrname/VOC2007/Annotations/' for file in `ls /home/usrname/ ...

  7. js字符串内容包含单引号‘’和双引号“”怎么办?

    如果javascript中的字符串包含单引号和双引号,可以用转义字符来标识 'I\'m \"OK\"!'; 表示的字符串内容是:I'm "OK"! 转义字符\可 ...

  8. IE 兼容模式 设置 Meta Compatible 和 Iframe 子页面的关系

    背景 因为历史原因,之前很多的系统都会是 顶级页面+Iframe来加载子级页面的这种模式构件系统,而且系统都只能运行在IE6或者IE 高版本兼容模式下(IE 7模式). 随着现在的审美原来越高,脚本能 ...

  9. Kettle报表自动化

    来自我们牛逼哄哄的东哥的笔记 1.   2. 3. 选择数据库链接 贴报表SQL 4. 文件名:选择路径,excel文件由kettle自动创建,自己只需输入创建文件的名称. 拓展名:后缀写上 5. 此 ...

  10. 关于js的严格模式

    最近在看你不知道js,补充自己的js基础,加深理解.在读的过程中写点笔记. 严格模式下与非严格模式的区别 . 严格模式是es5新增的,es6是默认为严格模式的!js默认状态下是非严格模式的!   一般 ...