Python知识点总结篇(一)
Python基础
变量
- 变量类型:
- 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.0
True
#!:常用于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 == spam
True
- 函数三大优点
- 代码重用;
- 保持一致性;
- 可扩展性;
- 过程:过程就是简单特殊无返回值的函数;
- 函数返回值:
- 返回值数 = 0:返回
None; - 返回值数 = 1:返回
object; - 返回值数 > 1:返回
tuple;
- 返回值数 = 0:返回
- 默认参数
- 特点:调用时,默认参数非必须传递;
参数组:
```python传递多个参数,返回的参数组是一个元组
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 + 1
print('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

欢迎关注微信公众号:村雨1943;创作不易,未经同意,转载请注明出处~
Python知识点总结篇(一)的更多相关文章
- Python知识点总结篇(五)
软件目录结构规范 目标: 提高可读性: 提高可维护性: 常见结构 Demo/ |-- bin/ #存放项目的一些可执行文件 | |-- demo #可执行程序,启动demo调main.py | |-- ...
- Python知识点总结篇(三)
文件操作 对文件操作流程 打开文件,得到文件句柄并赋值给一个变量: 通过句柄对文件进行操作: 关闭文件: with:自动关闭文件: with open('log', 'r') as f: ... 文件 ...
- Python知识点总结篇(二)
列表 列表:一个值,包含多个字构成的序列,用[ ]括起来,[]是一个空列表,不包含任何值,类似于空字符串,负数下标表示从后边开始,-1表示列表最后一个下标,它是一种可变的数据类型,值可以添加.删除或改 ...
- Python知识点总结篇(四)
递归 特性 必须有明确的结束条件: 每进入深一层递归,问题规模比上层应有所减少: 递归效率不高,层次更多会导致栈溢出: def calc(n): print(n) if n // 2 > 0: ...
- 第六篇:Python函数进阶篇
在了解完了 Python函数基础篇之后,本篇的存在其实是为了整合知识,由于该篇的知识是否杂乱,故大家可以通过点开点连接直接进入其详细介绍,该篇主要大致的介绍一下几个知识点: 一.Python的迭代器 ...
- Python知识点汇总
*/ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhe ...
- 《python开发技术详解》|百度网盘免费下载|Python开发入门篇
<python开发技术详解>|百度网盘免费下载|Python开发入门篇 提取码:2sby 内容简介 Python是目前最流行的动态脚本语言之一.本书共27章,由浅入深.全面系统地介绍了利 ...
- python知识点, float不能用 != 判断
python知识点链接:https://github.com/taizilongxu/interview_python 搜索:python最佳事件 书单:http://lucida.me/blog/d ...
- Python+Selenium练习篇之1-摘取网页上全部邮箱
前面已经介绍了Python+Selenium基础篇,通过前面几篇文章的介绍和练习,Selenium+Python的webUI自动化测试算是入门了.接下来,我计划写第二个系列:练习篇,通过一些练习,了解 ...
随机推荐
- haproxy 2.0 dataplaneapi docker 镜像
为了方便测试dataplaneapi 基于官方的docker镜像,制作了一个简单的包含dataplaneapi 的镜像 下载dataplaneapi https://github.com/haprox ...
- Presto Infrastructure at Lyft
转载一篇关于 lyft presto 平台建设的实践 Overview Early in 2017 we started exploring Presto for OLAP use cases and ...
- 【CSP-S膜你考】最近公共祖先 (数学)
Problem A. 最近公共祖先 (commonants.c/cpp/pas) 注意 Input file: commonants.in Output file: commonants.out Ti ...
- 分类模型的评价指标Fscore
小书匠深度学习 分类方法常用的评估模型好坏的方法. 0.预设问题 假设我现在有一个二分类任务,是分析100封邮件是否是垃圾邮件,其中不是垃圾邮件有65封,是垃圾邮件有35封.模型最终给邮件的结论只有两 ...
- Android编程权威指南笔记2:解决R文件爆红问题和SDK概念
在android studio中会遇到R文件的丢失,所以遇见这问题怎么解决呢? 重新检查资源文件中xml文件 最近一次编译时如果未生成R.java文件,项目中资源引用的地方都会出错.通常,这是某个xm ...
- test软件工程第三次作业
零.前言 本次作业要求个人编写程序,截止日期2019年9月25日23:00. 请先阅读<构建之法>第一章至第三章的内容,并在下方作业里体现出阅读后的成果.特别是第2章中的效能分析及个人软件 ...
- Linux下安装和使用MySQL数据库
因为这个工具需要用到MySQL,https://github.com/ENCODE-DCC/caper,不得不再Linux服务器上安装. 首先服务器本身是有MySQL的, $ /usr/bin/mys ...
- 微信小程序诡异错误this.setData报错
先说原因: function声明的函数和箭头函数的作用域不同,这是一个不小心坑的地方.可参考箭头函数说明:https://developer.mozilla.org/en-US/docs/Web/Ja ...
- ipa重签名最直接的教程
ipa 包重签名最新最简单教程 重签名的意义:ipa 重签名最大的用处是,不必重新打包,和配置其它第三方获取 appkey 等操作,直接重签名之后依然可以拥有这些功能,更快的发布测试或者灰度版本. 本 ...
- android 桌面图标添加数字角标
是否支持角标并不与手机厂商有关,而是你当前使用的launcher开发厂商有关. 方法实现: import android.app.Application; import android.app.Not ...