变量声明及赋值

声明变量:name = "Alex Li"

上述代码声明了一个变量,变量名为: name,变量name的值为:"lanhan" 

#!Author:lanhan
name = "lanhan"
name2 = name
print("my name is",name)

name = "wang"
print(name,name2)

变量定义的规则:

变量名只能是 字母、数字或下划线的任意组合

变量名的第一个字符不能是数字

以下关键字不能声明为变量名
['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']

2.2常量声明及赋值

常量声明及赋值:AGE = “27”

常量声明用大写字母,常量不应该修改,但可以改

2.3字符编码与二进制

python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill)

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

关于中文

为了处理汉字,程序员设计了用于简体中文的GB2312和用于繁体中文的big5

显然ASCII码无法将世界上的各种文字和符号全部表示,所以,就需要新出一种可以代表所有字符和符号的编码,即:Unicode

Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由 16 位来表示(2个字节),即:2 **16 = 65536,
注:此处说的的是最少2个字节,可能更多

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

所以,python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill)

字符编码发展史如下:

注:2.7不支持中文,需要添加# -*- coding:utf-8 -*-而3.3直接支持

字符编码与转码

注:1.在python2默认编码是ASCII, python3里默认是unicode

  1. 在py3中encode,在转码的同时还会把string 变成bytes类型,decode在解码的同时还会把bytes变回string

示例1:

#!Author:lanhan
msg = "我爱天安门"
print(msg)
print(msg.encode(encoding="utf-8"))
print(msg.encode(encoding="utf-8").decode(encoding="utf-8"))

示例2:

#!Author:lanhan
#-*- coding:utf-8 -*-
import sys
print(sys.getdefaultencoding())
s = "你好"
s_to_unicode = s.decode("utf-8")
print(s_to_unicode)
'''
s_to_gbk = s.decode("utf-8").encoding("gbk")
print(s_to_gbk)
print("你好")
'''

注:这里报错是正常的,因为#-*- coding:utf-8 -*-定义的是文件编码,并不是程序的编码,所以程序默认的编码还是unicode

示例3:

 

2.4注释

  1. 单行注释:# 被注释内容
  2. 多行注释:""" 被注释内容 """(3个单引号也可以)

扩:3个单引号可以用来打印输入值

2.5 用户输入

input()

扩展1:字符串按固定格式的拼接''' + 变量 +'''

扩展2:字符串按固定格式的拼接%s

PS: 字符串是 %s;整数 %d;浮点数%f

扩展3:字符串格式化拼接 .format

扩展4:顺序化格式拼接 .format

#!Author:lanhan
name = input("what is your name:")
age = int(input("age:"))    ######强制将string类型转换成integer
print(type(age)  ,type(str(age)))    #######打印变量字符类型
info = '''
-----info of %s-------
Name:%s
Age:%d
'''% (name,name,age)
#print(info1)

info2 = '''
-----info of  {_name}-------
Name:{_name}
Age:{_age}
'''.format(_name=name,
           _age=age)
#print(info2)

info3 = '''
-----info of  {0}-------
Name:{0}
Age:{1}
'''.format(name,age)
print(info3)

扩展5:字符串强制转换

扩展6:密码暗文

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

import getpass

# 将用户输入的内容赋值给 name 变量

pwd = getpass.getpass("请输入密码:")

# 打印输入的内容

print(pwd)

2.6 python运行过程

当python程序运行时,编译的结果则是保存在位于内存中的PyCodeObject中,当Python程序运行结束时,Python解释器则将PyCodeObject写回到pyc文件中。

当python程序第二次运行时,首先程序会在硬盘中寻找pyc文件,如果找到,则直接比较与源码的时间,若大于源码时间则直接调用,否则就重新编译。

所以我们应该这样来定位PyCodeObject和pyc文件(预编译后的字节码文件

),我们说pyc文件其实是PyCodeObject的一种持久化保存方式

2.7数据类型

2.7.1数字

2.7.1.1 int(整型)

在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647
  在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807

2.7.1.2 long(长整型)

跟C语言不同,Python的长整数没有指定位宽,即:Python没有限制长整数数值的大小,但实际上由于机器内存有限,我们使用的长整数数值不可能无限大。自从Python2.2起,如果整数发生溢出,Python会自动将整数数据转换为长整数,Python3.x都叫整型

2.7.1.3 float(浮点型)

浮点数用来处理实数,即带有小数的数字。类似于C语言中的double类型,占8个字节(64位),其中52位表示底,11位表示指数,剩下的一位表示符号

2.7.1.4 complex(复数)

复数由实数部分和虚数部分组成,一般形式为x+yj,其中的x是复数的实数部分,y是复数的虚数部分,这里的x和y都是实数。

注:Python中存在小数字池:-5 ~ 257

2.7.2布尔值

真或假

  1 或 0

2.7.3字符串

"hello world"

2.8数据运算

2.8.1算数运算

2.8.2比较运算

2.8.3赋值运算

2.8.4逻辑运算

2.8.5成员运算

2.8.6身份运算

2.8.7位运算

计算机中能表示的最小单位,是一个二进制位

计算机中能存储的最小单位,是一个二进制位(bit)

8bit = byte(字节)

1024byte = 1kbyte

1024kbyte = 1mbyte

1024mb = 1gb

1024gb = 1T

示例:

a = 60

b = 13

c =  0

c = a & b;

print “Line 1 - Value of c is ”,c

计算:

128     64     32      16     8     4    2        1

a = 60    0       0       1       1     1      1     0      0

b = 13    0       0       0       0     1      1     0      1

and

----------------------------------------------------------

0      0       0       0      1      1     0       0   = 12

or

0      0      1       1      1     1      0       1   = 61

---------------------------------------------------------------------

^

0      0      1        1      0     0      0      1   = 49

~a(195-256=-61)

1      1      0        0      0      0    1       1   = 195

a << 2 (左移1位,乘以2)

60*2*2                                                 =240

a >> 2  (右移1位,除以2)

60/2/2                                                 =15

2.8.8运算符优先级

2.9 bytes类型

Python 3最重要的新特性大概要算是对文本和二进制数据作了更为清晰的区分。文本总是Unicode,由str类型表示,二进制数据则由bytes类型表示。Python 3不会以任意隐式的方式混用str和bytes,正是这使得两者的区分特别清晰。你不能拼接字符串和字节包,也无法在字节包里搜索字符串(反之亦然),也不能将字符串传入参数为字节包的函数(反之亦然)

#!Author:lanhan
msg = "我爱天安门"
print(msg)
print(msg.encode(encoding="utf-8"))
print(msg.encode(encoding="utf-8").decode(encoding="utf-8"))

注:python3里默认的编码为utf-8,python2里默认的编码为系统编码

2.9.1 三元运算

result = 值1 if 条件 else 值2

如果条件为真:result = 值1
如果条件为假:result = 值2

2.9.2进制

2.9.2.1二进制

2.9.2.2八进制

2.9.2.3十进制

2.9.2.4十六进制

十六进制与十进制关系:

10:0   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15

16:0   1   2   3   4   5   6   7   8   9   A    B    C    D   E   F

十六进制与二进制关系:

二进制转换十六进制:

二进制转换成十六进制的方法是,取四合一法,即从二进制的小数点为分界点,向左(或向右)每四位取成一位(无法凑足四位,在小数点的最左边(或最右边)补0,进行换算)

16进制的表示方法:

后缀:H   示例:BH表示16进制的11

前缀:0X*  示例:0X23就是16进制的23

二进制转换十六进制:

一分四,即一个十六进制数分成四个二进制数,用四位二进制按权相加,最后得到二进制,小数点依旧就可以啦

转载于:https://www.cnblogs.com/decorator/p/7898726.html

python之路-02 Python基础相关推荐

  1. Python之路,day22-BBS基础

    Python之路,day22-BBS基础 多级评论 from django.template import Library from django.utils.safestring import ma ...

  2. Python之路,Day1 - Python基础

    本节内容 Python介绍 发展史 一. Python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决 ...

  3. 老男孩-Python之路,Day1 - Python基础1

    本节内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入 模块初识 .pyc是个什么鬼? 数据类型初识 数据运算 表达式if ...else语 ...

  4. python之路day4_【Python之路Day4】基础篇

    今日目录: 1. Python内置函数 2. 装饰器 一. Python内置函数 内置函数主要是使用比较频繁的或者是元操作,所以Python通过内置函数的方式提供给开发者,如下表: 下面现阶段只介绍一 ...

  5. Python之路,day3-Python基础

    三级菜单 1 menu = { 2 '北京':{ 3 '海淀':{ 4 '五道口':{ 5 'soho':{}, 6 '网易':{}, 7 'google':{} 8 }, 9 '中关村':{ 10 ...

  6. Python之路,day4-Python基础

    1.集合 2.元组 只读列表,只有count,index2个方法 3.字典key-value对 1.特性 2.查询速度快,比列表快python中的hash在同一程序下值相同python字典中的hash ...

  7. Python之路(二)Python基础

    运算符 算数运算符 |序号|符号|描述|实例| |--| |1|+|加,两个操作数相加|6 + 3 输出结果9| |2|-|减,两个操作数相减|6 - 3 输出结果3| |3||乘,两个操作数相乘|6 ...

  8. Python之路,Day2 - Python基础,列表,循环

    1.列表练习name0 = 'wuchao'name1 = 'jinxin'name2 = 'xiaohu'name3 = 'sanpang'name4 = 'ligang' names = &quo ...

  9. 老男孩-Python之路,Day2 - Python基础2

    本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 定义列表 ...

最新文章

  1. 谈谈我对服务熔断、服务降级的理解 专题
  2. AtCoder Beginner Contest 055题解
  3. 简单的busybox创建_用Busybox创建文件系统
  4. 【研究任务】linux系统开机启动过程
  5. linux suse11 nfs,suse11 nfsserver服务安装
  6. 刷爆了!李彦宏:这类程序员我给100万!你怎么看?
  7. win10环境,Eclipse安装Maven
  8. 写磁盘太慢导致服务超时问题分析
  9. ContOS 7 安装Jenkins
  10. 1059: [ZJOI2007]矩阵游戏 - BZOJ
  11. Android studio 怎么使用已经下载好的Android SDK ?
  12. 滤波器设计软件_浅谈滤波器之——啥是滤波器
  13. 手机端html本地存储,HTML5 web storage本地存储
  14. 无线产品的‘接收灵敏度’、‘无线协商速率’、‘发射功率’、‘无线干扰’
  15. hackRF--初步实战(ubuntu环境)
  16. Ventrilo初学者指南,面向游戏玩家的VoIP应用
  17. 自动驾驶落地,究竟被什么「绑」住了脚?
  18. 编译原理:词法分析实验报告
  19. 动森大头菜价格变化分析(1)——不同价格走势的变换
  20. 对话腾讯马晓轶:游戏投资布局稳健,发起“登月项目”探索未来

热门文章

  1. Python发布 - distutils简单使用
  2. 网络雇佣军 Void Balaur,有组织有纪律,且从不休长假
  3. GO SMS Pro App 被曝0day,泄露数百万条媒体消息
  4. 沙场白帽老兵聊未来的挖洞方向及其它
  5. CA 授权码bug 将导致Let’s Encrypt撤销300万张有效证书
  6. MFC获取屏幕分辨率
  7. csharp:Convert Image to Base64 String and Base64 String to Image
  8. Save as XPS in Office “12”
  9. 指针4-指针的运算和指针变量占几个字节
  10. PHP7内核基础知识之变量类型