1.1、单行注释:
python中单行注释采用 # 开头,注释可以在语句或表达式行末。
例:
#第一个注释
a = 10
b = 10
print(a + b) #第二个注释,求和。
pycharm中快捷键:ctrl+/
1.2、多行注释:
python 中多行注释使用三个单引号(''')或三个双引号(""")。
例:
'''
a = 1
print(a)
'''
#或
"""
a = 1
print(a)
"""
2、标识符,数据类型
2.1、什么是标识符?
标识符就是一个字符串。
2.2、标识符的作用
用来给变量,函数等命名。
2.3、组成规则
python中,标识符由字母,数字,下划线组成。
区分大小写。
开头不能是数字。
不能是python中的关键字。
见名知意。
以下划线开头的标识符是有特殊意义的。以单下划线开头 _foo 的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用 from xxx import * 而导入。
以双下划线开头的 __foo 代表类的私有成员,以双下划线开头和结尾的 foo 代表 Python 里特殊方法专用的标识,如 init() 代表类的构造函数。
获取关键字的方式:
import keyword
print(keyword.kwlist)
打印关键字结果为:
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
2.4、数据类型
str(字符串)
number(数字)整数 int,浮点数 float,复数 complex
bool(布尔值)
none(空值)
list(列表)
tuple(元组)
dict(字典)
set(集合)
2.5、获取数据类型
a = 123
print(type(a))
2.6、关系运算符
== 等于
!= 不等于
> 大于
< 小于
>= 大于等于
<= 小于等于
2.7、位运算符
& 按位与
| 按位或
^ 按位异或
~ 按位取反
<< 左移位
>> 右移位
3、变量
3.1、变量类型
变量,存储在内存中的值。这就意味着在创建变量时会在内存中开辟一个空间。
基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中。
因此,变量可以指定不同的数据类型,这些变量可以存储整数,小数或字符。
3.2、变量赋值
python中的变量赋值不需要类型声明。
每个变量在内存中创建,都包括变量的标识,名称和数据这些信息。
每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
等号(=)用来给变量赋值。
等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值。例如:
#语法
#变量名 = 初始值
varname = "hello world"
intnum = 18
longnum = 0.001
python允许同时为多个变量赋值。
例一:
#Author: Caesars
num1 = num2 = num3 = 1
print(num1)
print(num2)
print(num3)
print(num1,num2,num3)
以上实例,创建一个整形对象,值为1,三个变量被分配到相同的内存空间上。
例二:
#Author: Caesars
var1,var2,var3 = 172,63.50,"jh"
print(var1,var2,var3)
以上实例,两个整形对象1,2分别分配给变量a和b,字符串对象"jh"分配给变量c。
3.3、变量的定义规则
变量使用前,必须先定义。
变量名只能是字母,数字或下划线的组合。
变量名的第一个字符不能是数字。
关键字不能声明为变量:
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
3.4、定义变量:
var =
num1 =
int_num =
_str =
_longnum1 =
注意:在python中是没有常量的概念。在C中用关键字const定义常量。
在python中表示常量用大写的变量名表示(只是人为规定)。
3.5、删除变量
关键字:del
可删除程序中的变量。
删除的变量无法继续使用。
a = "hello world"
print(a)
del(a)
print(a)
执行程序后报错,发现变量没有被定义,定义变量已经被删除:
File "D:/PyCharm/test/2020-04-09/test01.py", line 5, in <module>
print(a)
NameError: name 'a' is not defined
4、行与缩进
学习 Python 与其他语言最大的区别就是,Python 的代码块不使用大括号 {} 来控制类,函数以及其他逻辑判断。python最具特色的就是用缩进来写模块。缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量,这个必须严格执行。
- IndentationError: unindent does not match any outer indentation level**错误表明,你使用的缩进方式不一致,有的是 tab 键缩进,有的是空格缩进,改为一致即可。
- 如果是 **IndentationError: unexpected indent** 错误, 则 python 编译器是在告诉你"**Hi,老兄,你的文件里格式不对了,可能是tab和空格没对齐的问题**",所有 python 对格式要求非常严格。
建议你在每个缩进层次使用 单个制表符 或 两个空格 或 四个空格 , 切记不能混用。
5、多行语句
Python语句中一般以新行作为语句的结束符。
但是我们可以使用斜杠( \)将一行的语句分为多行显示,如下所示:
#Author: Caesars
num1 = 1
num2 = 2
num3 = 3
sum = (num1+\
num2+\
num3)
print(sum)
语句中包含 [], {} 或 () 括号就不需要使用多行连接符。如下实例:
#Author: Caesars
dict = {'陕西': {
'宝鸡': {'金台区':['金台区欢迎您!'], '渭滨区':['渭滨区欢迎您!']},
'商洛': {'商州区':['商区周欢迎您!'], '丹凤县':['高新区欢迎您!']}},
'河北': {
'石家庄': {'长安区':['长安区欢迎您!'], '桥西区':['桥西区欢迎您!']},
'唐山': {'路北区':['路北区欢迎您!'], '路南区':['路南区欢迎您!']}}
}
print(dict)
6、空行
函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。类和函数入口之间也用一行空行分隔,以突出函数入口的开始。
空行与代码缩进不同,空行并不是Python语法的一部分。书写时不插入空行,Python解释器运行也不会出错。但是空行的作用在于分隔两段不同功能或含义的代码,便于日后代码的维护或重构。
记住:空行也是程序代码的一部分。
7、用户交互,input输入
输入的含义:从程序外部读取数据到程序内。
input输入:输入的一种,默认从终端获取输入。
a = input("请输入你想输入的内容:")
print("你输入的内容为:",a)
执行程序,打印输出:
请输入你想输入的内容:I love the world 你输入的内容为: I love the world
8、输出
print默认输出是换行,如果要实现不换行需要在变量末尾加上逗号。
#Author: Caesars
x = "a"
y = "b"
print(x)
print(y)
print("-----")
print(x,y) #不换行输出x,y
实例:格式化输出的三种模式
要求:
用户交互,提示用户输入host、hostname、ip、ns信息,并将输入结果格式化输出如下:
--------------host: -------------------
host:
hostname:
ip:
ns:
方法一:字符串拼接
#Author: Caesars
hosts = input("please input your hosts:")
hostname = input("please input your hostname:")
ip = input("please input your ipaddr:")
ns = input("please input your NS:")
info = '''--------------host: '''+ hosts + ''' -------------------
host: ''' + hosts + '''
hostname: ''' + hostname + '''
ip: ''' + ip + '''
ns: '''+ ns + '''
'''
print(info)
方法二:带格式输出
#Author: Caesars
hosts = input("please input your hosts:")
hostname = input("please input your hostname:")
ip = input("please input your ipaddr:")
ns = input("please input your NS:")
info = '''
---------------host: %s---------------
host: %s
hostname: %s
ip: %s
ns: %s
''' %(hosts,hosts,hostname,ip,ns)
print(info)
方法三、format函数变量映射
#Author: Caesars
hosts = input("please input your hosts:")
hostname = input("please input your hostname:")
ip = input("please input your ipaddr:")
ns = input("please input your NS:")
info = '''
---------------host: {_host}---------------
host: {_host}
hostname: {_hostname}
ip: {_ip}
ns: {_ns}
'''
var = info.format(_host = hosts,
_hostname = hostname,
_ip = ip,
_ns = ns
)
print(var)
方法四:format函数顺序映射
#Author: Caesars
hosts = input("please input your hosts:")
hostname = input("please input your hostname:")
ip = input("please input your ipaddr:")
ns = input("please input your NS:")
info = '''
---------------host: {0}---------------
host: {0}
hostname: {1}
ip: {2}
ns: {3}
'''.format(hosts,hostname,ip,ns)
print(info)