Python基础语法

1、注释

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: Caesarsdict = {‘陕西‘: {            ‘宝鸡‘: {‘金台区‘:[‘金台区欢迎您!‘], ‘渭滨区‘:[‘渭滨区欢迎您!‘]},            ‘商洛‘: {‘商州区‘:[‘商区周欢迎您!‘], ‘丹凤县‘:[‘高新区欢迎您!‘]}},        ‘河北‘: {            ‘石家庄‘: {‘长安区‘:[‘长安区欢迎您!‘], ‘桥西区‘:[‘桥西区欢迎您!‘]},            ‘唐山‘: {‘路北区‘:[‘路北区欢迎您!‘], ‘路南区‘:[‘路南区欢迎您!‘]}}        }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: Caesarshosts = 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)