02--Python基础知识②
编码
python2解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill),而python3对内容进行编码的默认为utf-8
#!/usr/bin/env python #coding=utf-8 #或者
# -*- coding: utf-8 -*-
注释
单行注视:# 被注释内容
多行注释:首尾三个单双引号
变量
- 变量名只能是 字母、数字或下划线的任意组合
- 变量名的第一个字符不能是数字
- 以下关键字不能声明为变量名
['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'] - 变量必须先被定义和赋值,才可以被使用
- 变量支持不同数据类型的赋值(如字符串,整数...)
基本数据类型①
整数型(int)
int (整型)
long (长整型) 注意:在Python3里不再有long类型了,全都是int
>>> wuhm=input() kkkkkk >>> print(wuhm) kkkkkk >>> type(wuhm) ### type()是查看数据类型的方法
<class 'str'>
字符串(str)
在Python中,加了引号的字符都被认为是字符串
字符串拼接
数字可以进行加减乘除等运算,字符串也能,但只能进行"相加"和"相乘"运算。注意,字符串的拼接只能是双方都是字符串,不能跟数字或其它类型拼接
>>> 'abc'+'ABC' 'abcABC' >>> 'abc'* 3 'abcabcabc' >>> '='* 5 '=====' >>>
布尔值(bool)
布尔类型就两个值 ,一个True(真),一个False(假), 主要用记逻辑判断. 非0即真 非空即真

>>> a=1 >>> b=2 >>> a>b False >>> a<b True
浮点数型(float)
Python将带小数点的数字都称为浮点数 。 大多数编程语言都使用了这个术语,小数点可出现在数字的任何位置。
空值(None)
空值是Python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。
此外,Python还提供了列表、字典等多种数据类型,还允许创建自定义数据类型.
脚本传参
Python有大量的模块,从而使得开发Python程序非常简洁。类库有包括三中:
- Python内部提供的模块
- 业内开源的模块
- 程序员自己开发的模块
Python内部提供一个 sys 的模块,其中的 sys.argv 用来捕获执行执行python脚本时传入的参数
[root@VM_0_15_centos py]# cat sys-argv.py #!/usr/bin/env python #coding=utf-8 import sys print(sys.argv[0]) #sys.argv[0] 类似于shell中的$0,但不是脚本名称,而是脚本的相对路径 print(sys.argv[1]) #sys.argv[1] 表示传入的第一个参数 print(sys.argv[2]) #sys.argv[1] 表示传入的第二个参数 [root@VM_0_15_centos py]# python sys-argv.py hello py sys-argv.py hello py
输入参数数量不够会报错
[root@VM_0_15_centos py]# python sys-argv.py hello sys-argv.py hello Traceback (most recent call last): File "sys-argv.py", line 6, in <module> print(sys.argv[2]) #sys.argv[1] 表示传入的第二个参数 IndexError: list index out of range
pyc文件
执行Python代码时,如果导入了其他的 .py 文件,那么,执行过程中会自动生成一个与其同名的 .pyc 文件,该文件就是Python解释器编译之后产生的字节码。
注: 代码经过编译可以产生字节码;字节码通过反编译也可以得到代码。
python2 2.7上执行后直接生成 同名.pyc文件 ,没有_pycache_ 这个目录

简述Python的运行过程
在说这个问题之前,我们先来说两个概念,PyCodeObject和pyc文件。
我们在硬盘上看到的pyc自然不必多说,而其实PyCodeObject则是Python编译器真正编译成的结果。我们先简单知道就可以了,继续向下看。
当python程序运行时,编译的结果则是保存在位于内存中的PyCodeObject中,当Python程序运行结束时,Python解释器则将PyCodeObject写回到pyc文件中。
当python程序第二次运行时,首先程序会在硬盘中寻找pyc文件,如果找到,则直接载入,否则就重复上面的过程。
所以我们应该这样来定位PyCodeObject和pyc文件,我们说pyc文件其实是PyCodeObject的一种持久化保存方式。
格式化输出 (占位符)
%s 字符串
%d 整数
%f 浮点数
% 当字符串中存在格式化标志时,需要用 %%表示一个百分号
[root@VM_0_15_centos py]# cat input.py #!/usr/bin/env python name = input("Name:") age = input("Age:") job = input("Job:") info = ''' ------------ info of %s ----------- Name : %s Age : %s job : %s ------------- end ----------------- ''' %(name,name,age,job) # 前面出现几个占位符, 这个% 括号里面就有几个值 print(info) [root@VM_0_15_centos py]# python input.py Name:wuhm Age:18 Job:ops ------------ info of wuhm ----------- Name : wuhm Age : 18 job : ops ------------- end -----------------
把上面Age后面的换成%d 数字占位符
[root@VM_0_15_centos py]# cat input.py #!/usr/bin/env python name = input("Name:") age = input("Age:") job = input("Job:") info = ''' ------------ info of %s ----------- Name : %s Age : %d job : %s ------------- end ----------------- ''' %(name,name,age,job) # 前面出现几个占位符, 这个% 括号里面就有几个值 print(info) [root@VM_0_15_centos py]# python input.py Name:wuhm Age:18 Job:ops Traceback (most recent call last): File "input.py", line 12, in <module> ''' %(name,name,age,job) # 前面出现几个占位符, 这个% 括号里面就有几个值 TypeError: %d format: a number is required, not str
运行后报错: 需要一个数字,而不是str 字符串 ### 因为input接收的所有输入默认都是字符串格式
查看下数据类型 type()
#!/usr/bin/env python name = input("Name:") age = input("Age:") print(type(age)) job = input("Job:")
[root@VM_0_15_centos py]# python input.py Name:wuhm Age:18 <class 'str'> Job:ops
怎么把 str 转成 int
name = input("Name:") age = int(input("Age:")) print(type(age)) job = input("Job:")
再次运行
[root@VM_0_15_centos py]# python input.py Name:wuhm Age:18 <class 'int'> Job:ops ------------ info of wuhm ----------- Name : wuhm Age : 18 job : ops ------------- end -----------------
基础其他
一、bytes类型
二、进制
三、三元运算
result = 值1 if 条件 else 值2
如果条件为真:result = 值1
如果条件为假:result = 值2

四、一切皆对象


浙公网安备 33010602011771号