Python基础

三元运算(三目运算),是对简单的条件语句的缩写。

# 书写格式

result = 值1 if 条件 else 值2

# 如果条件成立,那么将 “值1” 赋值给result变量,否则,将“值2”赋值给result变量

  

set

set集合,是一个无序且不重复的元素集合

add-----添加元素
# st = {"ale","liu","nuh","koi"}
# st.add("sdf")
# print(st)
clear-----清除列表
# st = {"ale","liu","nuh","koi"}
# st.clear()
# print(st)
difference----查找st中有的,ss没有的
# st = {"ale","liu","nuh","koi"}
# ss = {"alex","ale","nuh","ds"}
# print(st.difference(ss))
#
# {'koi', 'liu'}
difference-update----找到A中有的B中没有的,并更新自己
# st = {"ale","liu","nuh","koi"}
# ss = {"alex","ale","nuh","ds"}
# st.difference_update(ss)
# print(st)
#
# {'liu', 'koi'}
discard---移除指定元素,不存在不会报错
# st = {"ale","liu","nuh","koi"}
# st.discard("liu")
# print(st) # {'nuh', 'ale', 'koi'} intersection--------交集,找出两个都有的
# st = {"ale","liu","nuh","koi"}
# ss = {"alex","ale","nuh","ds"}
# ret = st.intersection(ss)
# print(ret) intersection-update----交集,找出两个相同的并更新st
# st = {"ale","liu","nuh","koi"}
# ss = {"alex","ale","nuh","ds"}
# st.intersection_update(ss)
# print(st) {'nuh', 'ale'} isdisjoint 如果没有交集返回True,如果有交集返回Fales
# st = {"ale","liu","nuh","koi"}
# ss = {"alex","ale","nuh","ds"}
# print(st.isdisjoint(ss))
#
# False
issubset-------是否是子序列
# st = {"ale","liu","nuh","koi"}
# ss = {"ale","nuh",}
# print(ss.issubset(st))
# True issuperset----是否是夫序列
# st = {"ale","liu","nuh","koi"}
# ss = {"ale","nuh",}
# print(st.issuperset(ss))
# True
pop-------删除随机元素
# st = {"ale","liu","nuh","koi"}
# st.pop()
# print(st)
remove-----删除指定元素
# st = {"ale","liu","nuh","koi"}
# st.remove("ale")
# print(st)
#
# {'koi', 'liu', 'nuh'}
symmetric_difference----对称交集,打印两个集合中不同的元素
# st = {"ale","liu","nuh","koi"}
# ss = {"alex","ale","nuh","ds"}
# print(st.symmetric_difference(ss))
# {'liu', 'koi', 'ds', 'alex'}
symmetric_difference_update----对称交集,并更新st
# st = {"ale","liu","nuh","koi"}
# ss = {"alex","ale","nuh","ds"}
# st.symmetric_difference_update(ss)
# print(st)
# {'koi', 'alex', 'ds', 'liu'} union------并集,把两个变量合起来
# st = {"ale","liu","nuh","koi"}
# ss = {"alex","ale","nuh","ds"}
# print(st.union(ss))
# {'ale', 'koi', 'alex', 'nuh', 'liu', 'ds'}
update------更新
# st = {"ale","liu","nuh","koi"}
# sk = {"ala"}
# st.update(sk)
# print(st)
# {'koi', 'ale', 'liu', 'ala', 'nuh'}

  

一、数字和字符串

对于 数字 和 字符串 而言,赋值、浅拷贝和深拷贝无意义,因为其永远指向同一个内存地址

import copy
# ######### 数字、字符串 #########
n1 = 123
# n1 = "i am alex age 10"
print(id(n1))
# ## 赋值 ##
n2 = n1
print(id(n2))
# ## 浅拷贝 ##
n2 = copy.copy(n1)
print(id(n2)) # ## 深拷贝 ##
n3 = copy.deepcopy(n1)
print(id(n3))

二、其他基本数据类型

对于字典、元祖、列表 而言,进行赋值、浅拷贝和深拷贝时,其内存地址的变化是不同的。

1、赋值

赋值,只是创建一个变量,该变量指向原来内存地址,如

n1 = {"k1": "wu", "k2": 123, "k3": ["alex", 456]}

n2 = n1

2、浅拷贝

浅拷贝,在内存中只额外创建第一层数据

import copy

n1 = {"k1": "wu", "k2": 123, "k3": ["alex", 456]}

n3 = copy.copy(n1)

3、深拷贝

深拷贝,在内存中将所有的数据重新创建一份(排除最后一层,即:python内部对字符串和数字的优化)

import copy

n1 = {"k1": "wu", "k2": 123, "k3": ["alex", 456]}

n4 = copy.deepcopy(n1)

在学习函数之前,一直遵循:面向过程编程,即:根据业务逻辑从上到下实现功能,其往往用一长段代码来实现指定功能,开发过程中最常见的操作就是粘贴复制,也就是将之前实现的代码块复制到现需功能处,如下:

while True:
if cpu利用率 > 90%:
#发送邮件提醒
连接邮箱服务器
发送邮件
关闭连接 if 硬盘使用空间 > 90%:
#发送邮件提醒
连接邮箱服务器
发送邮件
关闭连接 if 内存占用 > 80%:
#发送邮件提醒
连接邮箱服务器
发送邮件
关闭连接

腚眼一看上述代码,if条件语句下的内容可以被提取出来公用,如下:

def 发送邮件(内容)
#发送邮件提醒
连接邮箱服务器
发送邮件
关闭连接 while True: if cpu利用率 > 90%:
发送邮件('CPU报警') if 硬盘使用空间 > 90%:
发送邮件('硬盘报警') if 内存占用 > 80%:

对于上述的两种实现方式,第二次必然比第一次的重用性和可读性要好,其实这就是函数式编程和面向过程编程的区别:

  • 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可
  • 面向对象:对函数进行分类和封装,让开发“更快更好更强...”

函数式编程最重要的是增强代码的重用性和可读性

二、定义和使用

def 函数名(参数):

    ...
函数体
...
返回值

函数的定义主要有如下要点:

  • def:表示函数的关键字
  • 函数名:函数的名称,日后根据函数名调用函数
  • 函数体:函数中进行一系列的逻辑计算,如:发送邮件、计算出 [11,22,38,888,2]中的最大数等...
  • 参数:为函数体提供数据
  • 返回值:当函数执行完毕后,可以给调用者返回数据。

1、返回值

函数是一个功能块,该功能到底执行成功与否,需要通过返回值来告知调用者。

以上要点中,比较重要有参数和返回值

def 发送短信():

    发送短信的代码...

    if 发送成功:
return True
else:
return False while True: # 每次执行发送短信函数,都会将返回值自动赋值给result
# 之后,可以根据result来写日志,或重发等操作 result = 发送短信()
if result == False:
记录日志,短信发送失败...

2、参数

为什么要有参数?

函数的有三中不同的参数:

  • 普通参数
  • 默认参数
  • 动态参数

python 基础的更多相关文章

  1. python之最强王者(2)——python基础语法

    背景介绍:由于本人一直做java开发,也是从txt开始写hello,world,使用javac命令编译,一直到使用myeclipse,其中的道理和辛酸都懂(请容许我擦干眼角的泪水),所以对于pytho ...

  2. Python开发【第二篇】:Python基础知识

    Python基础知识 一.初识基本数据类型 类型: int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647 在64位 ...

  3. Python小白的发展之路之Python基础(一)

    Python基础部分1: 1.Python简介 2.Python 2 or 3,两者的主要区别 3.Python解释器 4.安装Python 5.第一个Python程序 Hello World 6.P ...

  4. Python之路3【第一篇】Python基础

    本节内容 Python简介 Python安装 第一个Python程序 编程语言的分类 Python简介 1.Python的由来 python的创始人为吉多·范罗苏姆(Guido van Rossum) ...

  5. 进击的Python【第三章】:Python基础(三)

    Python基础(三) 本章内容 集合的概念与操作 文件的操作 函数的特点与用法 参数与局部变量 return返回值的概念 递归的基本含义 函数式编程介绍 高阶函数的概念 一.集合的概念与操作 集合( ...

  6. 进击的Python【第二章】:Python基础(二)

    Python基础(二) 本章内容 数据类型 数据运算 列表与元组的基本操作 字典的基本操作 字符编码与转码 模块初探 练习:购物车程序 一.数据类型 Python有五个标准的数据类型: Numbers ...

  7. Python之路【第一篇】python基础

    一.python开发 1.开发: 1)高级语言:python .Java .PHP. C#  Go ruby  c++  ===>字节码 2)低级语言:c .汇编 2.语言之间的对比: 1)py ...

  8. python基础之day1

    Python 简介 Python是著名的“龟叔”Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言. Python为我们提供了非常完善的基础代码库,覆盖了 ...

  9. python基础之文件读写

    python基础之文件读写 本节内容 os模块中文件以及目录的一些方法 文件的操作 目录的操作 1.os模块中文件以及目录的一些方法 python操作文件以及目录可以使用os模块的一些方法如下: 得到 ...

  10. python基础之编码问题

    python基础之编码问题 本节内容 字符串编码问题由来 字符串编码解决方案 1.字符串编码问题由来 由于字符串编码是从ascii--->unicode--->utf-8(utf-16和u ...

随机推荐

  1. ASP.NET学习链接

    张子阳个人ASP.NET技术博客:http://www.tracefact.net/Asp-Net/ 动态加载asp.net分页控件:http://www.cnblogs.com/cresuccess ...

  2. 实用框架(iframe)代码

    <iframe src="http://www.baidu.com" marginwidth="0" marginheight="0" ...

  3. JavaScript闭包之“词法作用域”

    大家应该写过下面类似的代码吧,其实这里我想要表达的是有时候一个方法定义的地方和使用的地方会相隔十万八千里,那方法执行时,它能访问哪些变量,不能访问哪些变量,这个怎么判断呢?这个就是我们这次需要分析的问 ...

  4. 【Android学习】解决Eclipse AVD打开慢的问题

    1.创建的时候勾选“Snapshot” 2.之后Start时候勾选对应的.

  5. highcharts的表名

    line:直线图 spline:曲线图 area:面积图 areaspline:曲线面积图 arearange:面积范围图 areasplinerange:曲线面积范围图 column:柱状图 col ...

  6. 各大安卓应用市场APP上传提交与收录

    360 提交网址 应用宝 提交网址 百度 提交网址 91 提交网址 安卓 提交网址 PP助手 提交网址 小米 提交网址 华为 提交网址 OPPO 提交网址 魅族 提交网址 乐视 提交网址 豌豆荚 提交 ...

  7. Spring的jdbcTemplate查询执行原生sql

    在spring与hibernate整合时进行数据库检索,执行原生sql: public AppointmentEvaluateVo searchMyfeedbackDetail(String acco ...

  8. realloc的使用误区

    C语言 realloc() 函数位于 stdlib.h 头文件中,原型为: void *realloc(void *ptr, size_t size); realloc() 会将 ptr 所指向的内存 ...

  9. ASP.NET MVC随想录——漫谈OWIN

    什么是OWIN OWIN是Open Web Server Interface for .NET的首字母缩写,他的定义如下: OWIN在.NET Web Servers与Web Application之 ...

  10. 【XLL 框架库函数】 TempInt/TempInt12

    创建一个包含了 integer 的 XLOPER/XLOPER12 原型 LPXLOPER TempInt(short int i); LPXLOPER12 TempInt12(int i); 参数 ...