
Python 知识点总结篇(1)
发布日期:2021-05-08 06:30:20
浏览次数:19
分类:精选文章
本文共 3195 字,大约阅读时间需要 10 分钟。
变量
-
变量类型:
- 1、数字型
- 整形:
int
; - 浮点型:
float
; - 布尔型:
bool
,True
和False
; - 复数型:
complex
;
- 整形:
- 2、非数字型
- 字符串;
- 列表;
- 元祖;
- 字典;
- 1、数字型
-
不可变类型:内存中数据不允许被修改;
- 数字类型
int、bool、float、complex,long(2, x)
; - 字符串
str
; - 元祖
tuple
;
- 数字类型
-
可变类型:内存中数据可修改;
- 列表
list
; - 字典
dict
;
- 列表
-
变量命名规则:
- 只能是一个词;
- 只能包含字母、数字和下划线;
- 不能以数字开头;
运算符
-
**
:代表指数,eg:2 ** 3 = 8
; -
/
:代表除法,eg:22 / 8 = 2.75
; -
//
:代表整除/商数取整,eg:22 / 8 = 2
; -
*
:用于两个整形或浮点型值时,表示乘法,但用于字符串值和一个整形值时,它则变成了’字符串复制’操作符; -
交互式环境窗口与文件编辑器窗口区别:
- 交互式环境窗口总是有
>>>
提示符; - 文件编辑器窗口没有
>>>
提示符;
- 交互式环境窗口总是有
-
注释:
- 单行注释:
#这是单行注释;
- 多行注释:用三个单引号
'''
或者三个双引号"""
将注释括起来;
- 单行注释:
'''这是多行注释;'''
"""这是多行注释;"""
- 虽然数字的字符串值被认为与整形值和浮点型值完全不同,但整形值可以与浮点值相等,eg:
>>>42 == 42.0True
#!
:常用于Unix系统脚本中的第一行开头使用,用于知名执行这个脚本文件的解释程序;
#! /usr/bin/python3
- 运算符优先级
-
Python保留字
-
数据类型转换
-
正负无穷
float('inf') #正无穷float('-inf') #负无穷
- 利用
inf
乘以0
得到一个not-a-number(NaN)
,NaN
与inf
的区别:inf
数的significant
部分为0
,而NaN
数的significant
部分部位0
;
控制流
-
布尔值:
Boolean
,只有True
和False
; -
与
and
、或or
、非not
; -
控制流的元素:
- 条件;
- 代码块,代码块3条规则:
- 缩进增加时,代码块开始;
- 代码块可以包含其他代码块;
- 缩进减少为零,或减少为外面包围代码块的缩进,代码块就结束;
-
导入模块代码所包含的部分:
- import关键字;
- 模块名;
- 可选的更多模块名称,之间用逗号隔开;
函数
- None值,表示没有值,是NoneType数据类型的唯一值,print()的返回值即为None,
>>> spam = print('hello')hello>>> None == spamTrue
-
函数三大优点
- 代码重用;
- 保持一致性;
- 可扩展性;
-
过程:过程就是简单特殊无返回值的函数;
-
函数返回值:
- 返回值数 = 0:返回
None
; - 返回值数 = 1:返回
object
; - 返回值数 > 1:返回
tuple
;
- 返回值数 = 0:返回
-
默认参数
- 特点:调用时,默认参数非必须传递;
- 参数组:
#传递多个参数,返回的参数组是一个元组def test(*args): print(args) >>> test(1, 3, 4)(1, 3, 4)
# 参数组返回的是字典def test2(**kwargs): print(kwargs)>>> test2(name = 'k', age = 4, sex = 'M'){ 'name':'k', 'age':4, 'sex':'M'}
-
调用函数时,实质上传递的是实参保存数据的引用,而不是实参保存的数据;
-
位置参数和关键字:标准调用与形参位置一一对应;关键字调用无序固定;关键字参数必须在位置参数后边;
-
函数传递的参数
- 若是不可变类型:只要针对参数使用了赋值语句,函数内部会修改局部变量的引用,但不会对外部变量的引用造成影响;
- 若是可变类型:在函数内部使用方法修改参数内容时,同时也会对外部的数据造成影响,随着函数内部参数内容改变而改变;
- 当参数是列表时,使用
+=
不是进行相加再赋值的操作,本质上是调用列表的extend
方法;
-
缺省参数注意点
- 缺省参数的定义位置在参数列表末尾;
- 若由多个缺省参数,需要指定参数名;
-
多值参数
- 参数前有一个
*
可接收元祖,常命名为*args
; - 参数前有两个
*
可接受字典,常命名为**kwargs
;
- 参数前有一个
-
元祖与字典的拆包
- 要将一个元祖变量直接传递给
args
,则在元祖变量前增加一个*
; - 要将一个字典变量直接传递给
kwargs
,则在字典变量前增加两个**
;
- 要将一个元祖变量直接传递给
-
局部和全局作用域
- 在被调用函数内赋值的变元和变量,属于该函数的“局部作用域”,处于其中的变量称为”局部变量“,在所有函数之外赋,值的变量,属于“全局作用域”,处于其中的变量为”全局变量“。
- 局部变量不能在全局作用域内使用;
- 局部作用域不能使用其他局部作用域内的变量;
- 全局变量可以在局部作用域中读取;
-
global语句
- 通过使用global语句,在函数内修改全局变量;
eggs = 'global'def spam(): global eggs eggs = 'spam'spam()print(eggs) -----------spam-----------
- 除了字符串和整数不能在函数中改变它的值之外,其他的数据类型如列表、字典、集合等都能够通过函数改变它们的值;
- 区分一个变量是处于局部作用域还是全局作用域的4条法则:
- 若变量在全局作用于中使用(即在所有函数之外),则为全局变量;
- 若在一个函数中,有针对该变量的global语句,则为全局变量;
- 如果变量用于函数中的赋值语句,则为局部变量;
- 若变量没有用于复制语句中,则为全局变量;
- 异常处理:错误可由
try
和except
语句处理;
def spam(divideBy): try: return 43 / divideBy except ZeroDivisionError: print('Error:Invalid argument.')
- 小程序:猜数字
#小程序:猜数字,不断循环,直到你猜出这个数guessNumber = random.randint(1,100)print("I'm thinking a number between 1 and 100.")while True: print('Take a guess.') guess = int(input()) if guess > guessNumber: print("It's too high") elif guess < guessNumber: print("It's to low") else: print("Congratulations, you win.") break
- Collatz序列
#Collatz序列def collatz(number): if (number % 2 == 0): return number / 2 else: return number * 3 + 1print('Input a number.')while True: global number1 try: number1 = int(input()) except ValueError: print('Please input a number') continue if collatz(number1) != 1: print(int(collatz(number1))) else: print(int(collatz(number1))) break
发表评论
最新留言
网站不错 人气很旺了 加油
[***.192.178.218]2025年04月05日 14时20分37秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
flink —— checkpoint机制
2021-05-08
shell脚本中冒泡排序、直接排序、反转排序
2021-05-08
WPS及Excel中Alt键的妙用 快捷键
2021-05-08
超像素SLIC算法源码阅读
2021-05-08
多视图几何总结——从本质矩阵恢复摄像机矩阵
2021-05-08
深蓝学院《从零开始手写VIO》作业三
2021-05-08
C - 食物链 并查集
2021-05-08
Pycharm 常用快捷键
2021-05-08
基于Altium Designer的电子设计的入门指南
2021-05-08
基于LabVIEW的入门指南
2021-05-08