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)