python学习指南—Python 基础知识
Posted 诗雨时
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python学习指南—Python 基础知识相关的知识,希望对你有一定的参考价值。
系列文章目录
Python数据科学家养成计划(Python学习指南)前言
随着人工智能的不断发展,数据科学相关技术也越来越重要,很多人都开启了学习数据科学相关知识体系的学习之旅,本文就介绍了数据科学中 Python 的基础内容。
一、语句与注释
1. 语句
语句:程序进行编写,执行的每一行代码,叫做语句。
print("hello world")
2. 注释
注释:对代码的解释和说明,可以提高代码的可读性。
- 注释分为单行注释和多行注释;
- 单行注释以 # 开始
- 多行注释,可以使用三对双引号 “”" “”" 或者三对单引号 ‘’’ ‘’’
# 单行注释
# 输出 hello world 语句
print("hello world")
# 定义字符串变量
name = "貂蝉"
'''
我是多行注释
我是多行注释
我是多行注释
'''
age = 18
"""
我也是多行注释
我也是多行注释
我也是多行注释
"""
sex = "女"
二、变量与赋值
1. 变量的定义
变量:通俗理解就是存储程序数据的容器。
变量定义的格式:
变量名 = 数据(变量名尽量有含义,见名知意,方便理解)
name = "貂蝉"
skill = 450
money = 1.98
is_ok = True
可以通过 Python 内置的 type() 函数查看变量的类型。
type(name) # str
type(skill) # int
type(money) # float
type(is_ok) # bool
常用的数据类型: int、str、float、bool
2. 变量的命名规则
变量名:是由数字、字母、下划线组成,注意是只有这三种,但是不能以数字开头。
错误的使用:报错 "SyntaxError: invalid syntax"
3name = "貂蝉" # 以数字开头
name!age = 108 # 出现了 数字、字母、下划线 之外的字符 "感叹号"
变量命名方式:驼峰命名法和下划线命名法
- 驼峰命名法:小驼峰和大驼峰
- 小驼峰命名法:第一个单词首字母要小写,其他单词首字母都大写。
- 大驼峰命名法:每个单词首字母都大写。
- 划线命名法:单词小写,单词之间使用下划线进行分割。
hero_name = "寒冰射手" # 下划线命名法 -> 推荐使用
heroName = "德玛西亚之力" # 小驼峰命名法
HeroName = "诺克萨斯之手" # 大驼峰命名法
3. 关键字
关键字:在 Python 里面具有特殊功能的标识符(理解成变量名、函数名),关键字不能作为变量名使用。
关键字如下:
‘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’
如何查看 Python 的关键字:
(1) 方法一
a. win+r打开运行窗口输入cmd,打开命令提示符窗口。
b. 打开 Python Shell,输入
import keyword
keyword.kwlist
即可。
(2) 方法二
打开 Pycharm,输入
import keyword
print(keyword.kwlist)
即可。
4. 数据类型转换
函数 | 函数说明 |
---|---|
int(x [,base ]) | 将 x 转换为一个整数 |
float(x) | 将 x 转换为一个浮点数 |
str(x) | 将对象 x 转换为字符串 |
complex(real [,imag ]) | 创建一个复数,real 为实部,imag 为虚部 |
repr(x) | 将对象 x 转换为表达式字符串 |
eval(str) | 计算在字符串中有效 Python 表达式,并返回一个对象 |
tuple(s) | 将序列 s 转换为一个元组 |
list(s) | 将序列 s 转换为一个列表 |
chr(x) | 将一个整数转换为一个 Unicode 字符串 |
ord(x) | 将一个字符转换为它的 ASCII 整数值 |
hex(x) | 将一个整数转换为一个十六进制字符串 |
oct(x) | 将一个整数转换为一个八进制字符串 |
bin(x) | 将一个整数转换为一个二进制字符串 |
错误的使用:报错 "TypeError: unsupported operand type(s) for +: ‘int’ and ‘str’"
a = 100
b = "200"
result = a + b
print(result)
正确的使用:
a = 100
b = "200"
result = a + int(b)
print(result) # 300
三、输入与输出
1. Python 中的输入
input:用来获取用户输入的数据。
# 接收用户输入的数据
name = input("请输入你的名字:")
# 输出用户输入的名字
print(name)
注:当你运行完毕 name = input(“请输入你的名字:”) 代码并将鼠标光标移动到控制台,Python 交互式命令就等待输入,可以输入任意字符,然后按回车完成输入。
重点:不论输入框中输入任何数据类型的数据,等号左边的变量接收到的输入值都为 str 类型。
2. Python 中的输出
print:用于打印输出。
print() 函数语法如下:
print(*objects, sep=’ ‘, end=’\\n’, file=sys.stdout, flush=False)
参数
- objects – 复数,表示可以一次输出多个对象。输出多个对象时,需要用 , 分隔。
- sep – 用来间隔多个对象,默认值是一个空格。
- end – 用来设定以什么结尾。默认值是换行符 \\n,我们可以换成其他字符串。
- file – 要写入的文件对象。
- flush – 输出是否被缓存通常决定于 file,但如果 flush 关键字参数为 True,流会被强制刷新。
(1) 输出字符串和数字
print("Hello World") # 输出字符串 Hello World
print(100) # 输出数字 100
str = "Hello World"
print(str) # 输出变量 Hello World
l = [1, 2, "a"] # 列表 [1, 2, 'a']
print(l)
t = (1, 2, "a") # 元组 (1, 2, 'a')
print(t)
d = "a": 1, "b": 2 # 字典 'a': 1, 'b': 2
print(d)
(2) 格式化输出整数
支持参数格式化,与 C 语言的 printf 类似。
str = "%s的平均薪资是%d元人民币。" % ("数据科学家", 30000)
print(str) # 数据科学家的平均薪资是30000元人民币。
Python 字符串格式化符号:
符 号 | 描 述 |
---|---|
%c | 格式化字符及其 ASCII 码 |
%s | 格式化字符串 |
%d | 格式化整数 |
%u | 格式化无符号整型 |
%o | 格式化无符号八进制数 |
%x | 格式化无符号十六进制数 |
%X | 格式化无符号十六进制数(大写) |
%f | 格式化浮点数字,可指定小数点后的精度 |
%e | 用科学计数法格式化浮点数 |
%E | 作用同 %e,用科学计数法格式化浮点数 |
%g | %f 和 %e 的简写 |
%G | %f 和 %E 的简写 |
%p | 用十六进制数格式化变量的地址 |
格式化操作符辅助指令:
符 号 | 功 能 |
---|---|
* | 定义宽度或者小数点精度 |
- | 用做左对齐 |
+ | 在正数前面显示加号(+) |
<sp> | 在正数前面显示空格 |
# | 在八进制数前面显示零(‘0’),在十六进制进制前面显示 ‘0x’ 或者 ‘0X’(取决于用的是 ‘x’ 还是 ‘X’) |
0 | 显示的数字前面填充 ‘0’ 而不是默认的空格 |
% | ‘%%’ 输出一个单一的 ‘%’ |
(var) | 映射变量(字典参数) |
m.n. | m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话) |
(3) 格式化输出 16 进制,10 进制,8 进制
#%x – hex 十六进制
#%d – dec 十进制
#%o – oct 八进制
nHex = 0xFF
print("nHex = %x, nDec = %d, nOct = %o" %(nHex, nHex, nHex))
# nHex = ff, nDec = 255, nOct = 377
(4) 格式化输出浮点数(float)
pi = 3.141592653
print("%10.3f" % pi) # 字段宽 10,精度 3 3.142(注意整数3的前面有5个空格)
print("pi = %.*f" % (3, pi)) # 用 * 从后面的元组中读取字段宽度或精度 pi = 3.142
pi = 3.142
print("%010.3f" % pi) # 用 0 填充空白 000003.142
print("%-10.3f" % pi) # 左对齐 3.142
print("%+f" % pi) # 显示正负号 +3.142000
(5) 自动换行
print() 函数会自动在行末加上回车,如果不需回车,只需在 print 语句的结尾添加一个英文逗号,并设置分隔符参数 end,就可以改变它的行为。
自动在行末加上回车:
for i in range(0, 6):
print(i)
0
1
2
3
4
5
不需回车:
for i in range(0, 6):
print(i, end=" ")
0 1 2 3 4 5
(6) print 不换行
在 Python 中 print() 函数默认是换行的:
for i in range(0, 3):
print(i)
0
1
2
要想不换行,应该写成 print(i, end = " ")
for i in range(0, 3):
print(i, end=" ")
0 1 2
四、运算符
什么是运算符?
答:举个简单的例子 4 + 5 = 9 。例子中,4 和 5 被称为 操作数 ," + " 称为运算符。
Python 语言支持的运算符:
- 算术运算符
- 比较(关系)运算符
- 赋值运算符
- 逻辑运算符
- 位运算符
- 成员运算符
- 身份运算符
1. Python 算术运算符
Python 支持以下几种算术运算符:x=10, y=20, z=25
运算符 | 描 述 | 实例 |
---|---|---|
+ | 加 – 两个对象相加 | x + y 输出结果 30 |
- | 减 – 得到负数或是一个数减去另一个数 | x - y 输出结果 -10 |
* | 乘 – 两个数相乘或是返回一个被重复若干次的字符串 | x * y 输出结果 200 |
/ | 除 – x 除以 y | y / x 输出结果 2 |
% | 取模 – 返回除法的余数 | y % x 输出结果 0 |
** | 幂 – 返回 x 的 y 次幂 | x**y 为 10 的 20 次方,输出结果 100000000000000000000 |
// | 取整除 – 返回商的整数部分(向下取整) | 9 // 2 >> 4 -9 // 2 >> -5 |
x, y, z =10, 20, 25
# 加法
sum = x + y
print(" + = ".format(x, y, sum)) # 30
# 减法
difference = x - y
print(" - = ".format(x, y, difference)) # -10
# 乘法
product = x * y
print(" * = ".format(x, y, product)) # 200
# 除法
quotient = y / x
print(" / = ".format(y, x, quotient)) # 2.0
# 取模
modulus = y % x
print(" % = ".format(y, x, modulus)) # 0
# 幂运算
power = x ** y
print(" ** = ".format(x, y, power)) # 100000000000000000000
# 取整数(向下取整)
round_numbers = 9 // 2
print("9 // 2 = ".format(round_numbers)) # 4
2. Python 比较运算符
Python 支持以下几种比较运算符:x=10, y=20
运算符 | 描 述 | 实例 |
---|---|---|
== | 等于 – 比较对象是否相等 | (x == y) 返回 False |
!= | 不等于 – 比较对象是否不相等 | (x != y) 返回 True |
> | 大于 – 返回 x 是否大于 y | (x > y) 返回 False |
< | 小于 – 返回 x 是否小于 y | (x < y) 返回 True |
>= | 大于等于 – 返回 x 是否大于等于 y | (x >= y) 返回 False |
<= | 小于等于 – 返回 x 是否小于等于 y | (x <= y) 返回 True |
注:所有比较运算返回 1 表示真,返回 0 表示假。这分别与特殊的变量 True 和 False 等价。
x, y =10, 20
# 等于
print(" == : ".format(x, y, x == y)) # 10 == 20: False
# 不等于
print(" != : ".format(x, y, x != y)) # 10 != 20: True
# 大于
print(" > : ".format(x, y, x > y)) # 10 > 20: False
# 小于
print(" < : ".format(x, y, x < y)) # 10 < 20: True
# 大于等于
print(" >= : ".format(x, y, x >= y)) # 10 >= 20: False
# 小于等于
print(" <= : ".format(x, y, x <= y)) # 10 <= 20: True
3. Python 赋值运算符
Python 支持以下几种赋值运算符:x=10, y=20
运算符 | 描 述 | 实例 |
---|---|---|
= | 简单的赋值运算符 | 把 = 号右边的结果 赋给 左边的变量,如 sum = x + y 将 x + y 的结果赋值给变量 sum |
+= | 加法赋值运算符 | x += y 等效于 x = x + y |
-= | 减法赋值运算符 | x -= y 等效于 x = x - y |
*= | 乘法赋值运算符 | x *= y 等效于 x = x * y |
/= | 除法赋值运算符 | x /= y 等效于 x = x / y |
%= | 取模赋值运算符 | x %= y 等效于 x = x % y |
**= | 幂赋值运算符 | x **= y 等效于 x = x ** y |
//= | 取整除赋值运算符 | x //= y 等效于 x = x // y |
# 简单赋值运算符
x, y =10, 20
sum = x + y
print(" + 的值为:".format(x, y, sum)) # 10 + 20 的值为:30
# 加法赋值运算符
x, y =10, 20
sum = x + y
x += y
print(sum == x) # True
print("10 + 20 的值为:".format(x)) # 10 + 20 的值为:30
# 减法赋值运算符
x, y =10, 20
difference = x - y
x -= y
print(difference == x) # True
print("10 - 20 的值为:".format(x)) # 10 - 20 的值为:-10
# 乘法赋值运算符
x, y =10, 20
product = x * y
x *= y
print(product == x) # True
print("10 * 20 的值为:".format(x)) # 10 * 20 的值为:200
# 除法赋值运算符
x, y =10, 20
quotient = x / y
x /= y
print(quotient == x) # True
print("10 / 20 的值为:".format(x)) # 10 / 20 的值为:0.5
# 取模赋值运算符
x, y =10, 20
modulus = x % y
x %= y
print(modulus == x) # True
print("10 %= 20 的值为:".format(x)) # 10 % 20 的值为:10
# 幂运算赋值运算符
x, y =10, 20
power = x ** y
x **= y
print(power == x) # True
print("10 ** 20 的值为:".format(x)) # 10 ** 20 的值为:100000000000000000000
# 取整数(向下取整)赋值运算符
x, y =9, 2
round_numbers = x // y
x //= y
print(round_numbers == x) # True
print("10 // 20 的值为:".format(x)) # 9 // 2 的值为:4
4. Python 位运算符
按位运算符是把数字看作二进制来进行计算的。
下表中 x=60, y=13,二进制格式如下:
x = 0011 1100 y = 0000 1101 |
---|
x & y = 0000 1100 |
x | y = 0011 1101 |
x ^ y = 0011 0001 |
~x = 1100 0011 |
x<<2 = 1111 0000 |
x>>2 = 0000 1111 |
运算符 | 描 述 | 实例 |
---|---|---|
& | 按位与运算符:参与运算的两个值,如果两个相应位都为 1,则该位的结果为 1,否则为 0 | (x & y) 的输出结果 12,二进制解释:0000 1100 |
| | 按位或运算符:只要对应的二个二进位有一个为 1 时,结果位就为1 | (x | y) 的输出结果 61,二进制解释:0011 1101 |
^ | 按位异或运算符:当两对应的二进位相异时,结果为 1 | (x ^ y) 的输出结果 49,二进制解释:0011 0001 |
~ | 按位取反运算符:对数据的每个二进制为取反,即把 1 变为 0,把 0 变为 1。~x 类似于 -x - 1 | (~x) 的输出结果 -61,二进制解释:1100 0011,在一个有符号二进制数的补码形式 |
<< | 左移动运算符:运算数的各二进位全部左移若干位,由 << 右边的数字指定了移动的位数,高位丢弃,低位补 0 | (x << 2) 的输出结果 240,二进制解释:1111 0000 |
>> | 右移动运算符:把 “>>” 左边的运算数的各二进位全部右移若干位,>> 右边的数字指定了移动的位数 | (x >> 2) 的输出结果 15,二进制解释:0000 1111 |
(1) 按位与运算符:参与运算的两个值,如果两个相应位都为 1,则该位的结果为 1,否则为 0。
x, y = 60, 13
# 按位与运算符
z = x & y # 12 = 0000 1100
print(" & 的值为:".format(x, y, z)) # 60 & 13 的值为:12
(2) 按位或运算符:只要对应的二个二进位有一个为 1 时,结果位就为1。
x, y = 60, 13
# 按位或运算符
z = x | y # 61 = 0011 1101
print(" | 的值为:".format(x, y, z)) # 60 | 13 的值为:61
(3) 按位异或运算符:当两对应的二进位相异时,结果为 1。
x, y = 60, 13
# 按位异或运算符
z = x ^ y # 49 = 0011 0001
print(" ^ 的值为:".format(x, y, z)) # 60 ^ 13 的值为:49
(4) 按位取反运算符:对数据的每个二进制为取反,即把 1 变为 0,把 0 变为 1。~x 类似于 -x - 1。
x, y = 60, 13
# 按位取反运算符
z = ~x # 49 = 1100 0011
print("~ 的值为:".format(x, z)) # ~60 的值为:-61
(5) 左移动运算符:运算数的各二进位全部左移若干位,由 << 右边的数字指定了移动的位数,高位丢弃,低位补 0。
x, y = 60, 13
# 左移动运算符
z = x << 2 # 240 = 1111 0000
print(" << 2 的值为:".format(x, z)) # 60 << 2 的值为:240
(6) 右移动运算符:把 “>>” 左边的运算数的各二进位全部右移若干位,>> 右边的数字指定了移动的位数。
x, y = 60, 13
# 右移动运算符
z = x >> 2 # 15 = 0000 1111
print(" >> 2 的值为:".format(x, z)) # 60 >> 2 的值为:15
5. Python 逻辑运算符
Python 支持以下几种逻辑运算符:x=10, y=20
运算符 | 逻辑表达式 | 描 述 | 实例 |
---|---|---|---|
and | 以上是关于python学习指南—Python 基础知识的主要内容,如果未能解决你的问题,请参考以下文章 |