Python入门
一、注释
- 特征:当
CPython
执行代码时,会忽略掉注释说明文字。 - 作用:使用自然语言对代码行、代码块、函数功能、类功能进行文字说明。
- 分类:
- 单行:
#
- 与代码作为一行时,注释写在代码之后,
#
与代码之间建议至少空两个空格 - 单行注释作为单独一行时,与需要注释的代码行首对齐
- 与代码作为一行时,注释写在代码之后,
- 多行:
''' 注释 '''
、""" 注释 """
- 特点:在三引号内的所有文字,包括“代码”都是注释
- 多行注释作为单行说明文字时,不要与代码写到一行
- 单行:
- PyCharm中注释的热键:
Ctrl + /
二、变量
2.0 标识符
- 定义:程序员使用字母数字下划线对代码的对象(字面量、函数、类)进行标记。由用户自定义。
- 标识符的规则:
- 使用字母、数字、下划线(绝对不能使用空格);
- 标识符要见名知意,比如:正确演示
name_str = '张三'
,错误演示zhangsan = '张三'
- 不能使用Python中的关键字(Python内置的函数名、变量名、类名)作为标识符
- 不能以数字开头,可以使用字母或者下划线开头,其中下划线有特殊含义,尽量不要使用。
如果程序必须使用关键字来定义标识符,那么就给关键字之后加上一个下划线!
- Python内置的关键字
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.1 变量的作用
对Python中的值进行标记和保存,方便程序员进行随时的调用。
2.2 变量的定义
# 变量名 = 值
- 定义:可以改变的量。
- 实质:Python中,对象的容器,可以看作变量指向了对象。
- 变量必须指向一个值,没有对象的变量无法创建。
- 变量不需要类型的声明,直接创建即可。
- 在代码中,可以任意改变变量的指向。
2.3 对象的三要素
- 三要素包括:
id
、type
、value
id
:在当前内存中是唯一的,用于唯一标识这个对象,可以看作对象的内存地址;type
:表示对象的类型,这个类型必须是Python指定的内置类型;value
:程序员根据内置类型来自定义的字面量,必须符合对象定义规则。
- 获取三要素
id
的获取:id(变量名)
;type
的获取:type(变量名)
;value
的获取:变量名
;
- 代码演示
# 定义变量
del_ = '123'
# 获取id
print(id(del_))
# 获取type
print(type(del_))
# 获取value
print(del_)
三、数据类型
- Python在六大数据类型
- 数字类型
- 整型:
int
:表示的字面量为数学运算中的整数;- 浮点型:
float
:表示的字面量为数学运算中的小数;- 布尔型:
bool
:只有两种字面量:True
和False
。True
和False
在内存保存的格式分别为1
和0
。- 字符串类型:
str
,格式为使用引号包裹起来的字符串,引号可以为单引号、双引号、三对引号。- 列表类型:
list
- 字典类型:
dict
- 元组类型:
tuple
- 集合类型:
set
四、输出
4.1 输出的语法
print
函数的功能,将指定的value
输出到控制台或者文件中。
# print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
参数的说明:
value, ...
:传入对象的值,如果传入多个对象使用逗号
间隔,打印的结果为多个值以一个空格分隔;sep=' '
:表示value与value之间的间隔符号,value之间的间隔默认为一个空格;end='\n'
:表示所有value值打印完成后,后面跟的字符,默认值换行符。
4.2 格式化输出
- 类C风格的格式化输出(最古老的)
# 需求打印三个变量,分为一个人属性(姓名、年龄、体重)
# 1. 设置人的属性变量
name = '张三' # <class 'str'>
age = 18 # <class 'int'>
weight = 66.6 # <class 'float'>
# 2. 在一行中打印一句话:"我的名字叫张三,今年18岁,体重66.6公斤。"
print("我的名字叫张三,今年18岁,体重66.6公斤。")
# 第一种尝试,直接传入,不可以
print("我的名字叫name,今年age岁,体重weight公斤。")
# 第二种:使用占位符传入
print('我的名字叫%s,今年%d岁,体重%.1f公斤。' % (name, age, weight))
%s
是万能占位符,可以代替任意的其它占位符,但是当需要保持float
的精度时,必须%f
- 使用format方法格式化输出(是
Python2.6
版本加入的功能)
- 语法
# 数据对象.format(变量1, 变量2, ..., 变量n)
- 代码
# 输出:我的名字叫张三,今年18岁,体重66.6公斤。
# 第一种写法
print('我的名字叫{},今年{}岁,体重{}公斤。'.format(name, age, weight))
# 第二种写法:推荐写法
print('我的名字叫{1},今年{0}岁,体重{2}公斤。'.format(age, name, weight)) # age:0 name:1 weight:2
缺点:如果传入的变量太多,需要计算编号,而且容易数错!
- 使用
f
前缀格式化输出(Python3.6
版本加入的功能)
不用考虑对象的类型,不用计算变量传入的编号
- 传入变量
name = '张三'
age = 18
weight = 66.6
# 输出:我的名字叫张三,今年18岁,体重66.6公斤。
print(f'我的名字叫{name},今年{age}岁,体重{weight}公斤。')
- 指定字符占用的位置个数
# 需求:要求age变量占用6个字符的位置
print(f'我的名字叫{name},今年{age:6}岁,体重{weight}公斤。')
- 字符在占用的位置中显示的位置
# 需求1:要求age变量占用6个字符的位置,并居中显示
print(f'我的名字叫{name},今年{age:^6}岁,体重{weight}公斤。')
# 需求2:要求age变量占用6个字符的位置,并靠左显示
print(f'我的名字叫{name},今年{age:<6}岁,体重{weight}公斤。')
# 需求3:要求age变量占用6个字符的位置,并靠右显示
print(f'我的名字叫{name},今年{age:>6}岁,体重{weight}公斤。')
- 填充字符
# 需求4:要求age变量占用6个字符的位置,并居中显示,使用*填充
print(f'我的名字叫{name},今年{age:*^6}岁,体重{weight}公斤。')
# 需求4:要求age变量占用6个字符的位置,并靠右显示,使用*填充
print(f'我的名字叫{name},今年{age:*>6}岁,体重{weight}公斤。')
指定填充字符时,需要指定字符的位置(居中、靠左、靠右),不能省略!
4.3 转义字符
\n
:newline
:换行符