基本类型的补充

str --> 一次性创建的,不能被修改,强制修改就会在创建一个而之前的也会在

list -->允许重复的集合 修改  记录 链表,下一个元素的位置,上一个元素的位置

tuplt --> 允许重复的集合  修改

dict---> 允许重复的集合  修改

set -->不允许重复的集合,修改  也是不允许重复的列表

set 集合

创建方式有两种 s = set() s = {,,,,}

s1 = {11,44,55,66,77}
b1 = {11,22,33,44,55,789}
s1.add(88) #添加某一个元素 不能直接打印
print(s1)
结果
{66, 11, 44, 77, 55, 88} s1.clear() #清空列表 不能清除一个
print(s1)
结果
set() i = s1.difference (b1) #找s1中存在 b1中不存在的元素,并赋值给i
print(i)
结果‘
{66, 77} s1.difference_update(b1) #找某一个存在,某一个不存在元素更新自己的
print(s1)
结果
{66, 77} i = s1.discard(11)
print(s1) #移除指定元素 没有的也不存在保错
结果
{66, 44, 77, 55} i = s1.remove(11) #移除指定元素,不存在的报错
print(b1)
结果
{33, 11, 44, 789, 22, 55} i = s1.intersection(b1) #返回两个集合的交集作为一套新的
print(s1)
结果
{66, 11, 44, 77, 55} i = s1.isdisjoint(b1) #判断有没有交集,有交集就是False,没有交集就是Ture
print(i)
结果
False i = s1.issubset(b1) #判断是不是子序列
print(i)
结果
False i = s1.issuperset(b1) #判断是不是父子列
print(i)
结果
False i = s1.pop() #删除某一个元素 因为是无序的所以是随机 而删除掉的给会赋值给i变量
print(i)
结果
66
i = s1.symmetric_difference(b1)
print(i) #对称交集  就s1中存在 b1中不存在的  b1中存在 s1中不存在的 并进行合集!
结果
{33, 789, 22, 77} i = s1.union(b1)
print(i) #并集 合并到一个新的集合
结果
{33, 11, 44, 77, 789, 22, 55}
li = [123,321,32113243]
s1.update()
print(li)
执行结果:[123, 321, 32113243]

三目运算 三元运算

name= 值1 if 1 == 1 sles 值2 如果条件成立就把值1赋给变量 如果条件不成立就把值2 赋给变量

q = 'erzi' if 1==1 else 'sunzi'
print(q) q = 'xin' if 1 !=1 else 'pi'
  print(q) D:\python3.5\python.exe D:/untitled/.idea/sanyuan.py
erzi
pi
Process finished with exit code 0

深浅拷贝。 深浅拷贝有copy模块。

导入模块:import copy

浅拷贝:copy.copy

深拷贝:deepcopy

字面理解:浅拷贝指仅仅拷贝数据集合的第一层数据,深拷贝指拷贝数据集合的所有层。

所以对于只有一层的数据集合来说深浅拷贝的意义是一样的,比如字符串,数字。

import copy    先导入模块

q1 = 123

print(id(q1))
q2 = q1
赋值
print(id(q2))
q3 =copy.copy(q1)
浅拷贝 print(id(q3))
q4 = copy.deepcopy(q1)
深拷贝 print(id(q4))
D:\python3.5\python.exe D:/untitled/q1.py
497237680
497237680
497237680
497237680
Process finished with exit code 0


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

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

q1 = {'k1':'v1','k2':'v2','k3':['xin',321]}
q2 = q1
print(id(q2)) D:\python3.5\python.exe D:/untitled/q1.py
10040584 Process finished with exit code 0

浅拷贝 ,在内存中只额外创建第一层数据   拷贝加赋值 的id地址都一样的

q1 = {'k1':'v1','k2':'v2','k3':['xin',321]}
q2 = copy.copy(q1)
print(id(q1),id(q2)) D:\python3.5\python.exe D:/untitled/q1.py
7503144 15611144
Process finished with exit code 0 深拷贝,全部拷贝,除了最后一层的值
在内存中将所有的数据重新创建一份(排除最后一层,即:python内部对字符串和数字的优化)

q1 = {'k1':'v1','k2':'v2','k3':['xin',321]}
q2 = copy.deepcopy(q1)
print(id(q1),id(q2)) D:\python3.5\python.exe D:/untitled/q1.py
11238696 12160016 Process finished with exit code 0

函数:

函数 是面向过程编程

函数编程

函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。

函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。

你可以定义一个由自己想要功能的函数,以下是简单的规则:

  • 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()
  • 任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。
  • 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
  • 函数内容以冒号起始,并且缩进。
  • return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。
定义函数
def xin(): # 只输入一次 以后可以直接调用 不需要继续重新输入或者复制粘贴
print('qwertryu')
def kai():
print('ertyuidfghjcvbnm')
# #执行函数
xin() #从上往下执行
kai()

# return #就是返回值 每次执行完结果都要定义一个返回值,不定义自动返回HONE

def xin ():
print('xinxinxin')
return 'ok' 记得要定义返回值
ret = xin()
print(ret)
D:\python3.5\python.exe D:/untitled/.idea/sanyuan.py
xinxinxin
ok Process finished with exit code 0
def xin():       定义函数名称
print('qwe')
ret = xin()执行函数
if ret:  如果返回值是真的
prtint('haha')  
else:  否则就是假的
print('gun')
  
D:\python3.5\python.exe D:/untitled/.idea/sanyuan.py
qwe
gun Process finished with exit code 0

参数  分为 形式参数, 实际参数 , 动态参数

形参 ,实参 (默认的,按照顺序)

指定 形参传入实参,可以不按照顺序

函数可以有默认参数,(有默认值的参数一定要放在参数的尾部)

动态参数  *,元祖 ,元祖的元素

     **,字典

   

形式参数  和 实际参数

def kai (i): #(i) 形式参数,
if i == "123456789": #如果形式参数等于实际参数的值
return True # 就返回成功 下面的代码就不执行了
else: #否则
return False #就返回失败 继续执行 q1 = kai('123456789') #实际参数就是定义的返回值
q2 = kai('789465132')
if q1: #如果执行的实际参数是就是形式参数
print('yes') #就是成功了
else: #否则
print('no') #否则就是失败了 D:\python3.5\python.exe D:/untitled/.idea/sanyuan.py
yes Process finished with exit code 0

执行参数:

def xin(w,x ):
print(w,x)
return'sss'
s = xin(x= 'xx',w= '')
print(s)
执行结果:
33 xx
sss

动态参数

加 * 号就是动态参数
def niu(*a):
print(a,type(a)) #元祖类型
niu(123,456,543,654,432,654,423) D:\python3.5\python.exe D:/untitled/.idea/sanyuan.py
(123, 456, 543, 654, 432, 654, 423) <class 'tuple'> Process finished with exit code 0 def niu (**a): # 字典类型
print(a,type(a))
niu(k1=123,k2=456)
D:\python3.5\python.exe D:/untitled/.idea/sanyuan.py
{'k1': 123, 'k2': 456} <class 'dict'> Process finished with exit code 0 def xin (*a,**aa): 接受和各种类型的参数
print(a,type(a))
print(aa,type(aa))
xin(11,22,k1=23,k2 =123) D:\python3.5\python.exe D:/untitled/.idea/sanyuan.py
(11, 22) <class 'tuple'>
{'k2': 123, 'k1': 23} <class 'dict'> Process finished with exit code 0

一般把一个 *写成  args

         ** kwargs

        也可以写成 *a。**aa。

def q1(* args):
print(args,type(args))
li = [1,2,3,4,5]
q1(li) 元祖里的一个元素
q1(*li) 把每个元素都加入到 元祖里 D:\python3.5\python.exe D:/untitled/.idea/sanyuan.py
([1, 2, 3, 4, 5],) <class 'tuple'>
(1, 2, 3, 4, 5) <class 'tuple'> Process finished with exit code 0

全局变量 局部变量

定义在函数内部的变量拥有一个局部作用域,定义在函数外的拥有全局作用域。

局部变量只能在其被声明的函数内部访问,而全局变量可以在整个程序范围内访问。调用函数时,所有在函数内声明的变量名称都将被加入到作用域中。

PERSON = 'alex'
###全局变量 全局变量都大写不能被修改 如果要修改的话必须加global
def x1 ():
a = 12
#局部变量 ,都为小写只能在自己的范围内
print(PERSON)
print(a)
x1() D:\python3.5\python.exe D:/untitled/.idea/sanyuan.py
alex
12 Process finished with exit code 0

python 基础 基本数据类型的更多相关文章

  1. Python基础之数据类型

    Python基础之数据类型 变量赋值 Python中的变量不需要声明,变量的赋值操作既是变量声明和定义的过程. 每个变量在内存中创建,都包括变量的标识,名称和数据这些信息. 每个变量在使用前都必须赋值 ...

  2. 第二章:python基础,数据类型

    """第二章:python基础,数据类型2.1 变量及身份运算补充2.2 二进制数2.3 字符编码每8位所占的空间位一个比特,这是计算机中最小的表示单位.每8个比特组成一 ...

  3. python基础一数据类型之字典

    摘要: python基础一数据类型之一字典,这篇主要讲字典. 1,定义字典 2,字典的基础知识 3,字典的方法 1,定义字典 1,定义1个空字典 dict1 = {} 2,定义字典 dict1 = d ...

  4. 第一节 Python基础之数据类型(整型,布尔值,字符串)

    数据类型是每一种语言的基础,就比如说一支笔,它的墨有可能是红色,有可能是黑色,也有可能是黄色等等,这不同的颜色就会被人用在不同的场景.Python中的数据类型也是一样,比如说我们要描述一个人的年龄:小 ...

  5. python基础一数据类型之集合

    摘要: python基础一中介绍数据类型的时候有集合,所以这篇主要讲集合. 1,集合的定义 2,集合的功能 3,集合的方法 1,集合的定义 list1 = [1,4,5,7,3,6,7,9] set1 ...

  6. python基础一数据类型之元祖

    摘要: python基础一中写到数据类型元祖,那么这篇主要讲元祖. 1,元祖定义 tuple1 = (1,2,'a','b') 元祖是不可变数据,所以又名只读列表.那么如何让是元祖可变呢?可以在元祖中 ...

  7. python基础一数据类型之列表

    摘要: python基础一中写到列表,那么这篇主要讲列表. 1,定义列表 2,列表.元祖.字符串都属于序列,都可以用用索引和切片. 3,列表的方法 1,定义列表 list1 = ['a','b',1, ...

  8. Python基础一数据类型之数字类型

    摘要: python基础一中提到了数据类型,这里主要讲解的是数字类型. 数字类型: 1,整型 2,长整型 3,浮点型 4,复数型 1,整型(int) 定义a = 1 通过type函数查看数据类型,整型 ...

  9. python基础(二)----数据类型

    Python基础第二章 二进制 字符编码 基本数据类型-数字 基本数据类型-字符串 基本数据类型-列表 基本数据类型-元组 可变.不可变数据类型和hash 基本数据类型-字典 基本数据类型-集合 二进 ...

  10. Python学习day04 - Python基础(2)数据类型基础

    <!doctype html>day04 - 博客 figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { ...

随机推荐

  1. jquery noConflict详解

    noConflict是防止其他库也用了$作为全局变量而引起的冲突,我们看看jquery是怎么做的 首先jquery在代码的开始部分定义了2个私有变量: _jQuery = window.jQuery ...

  2. 小Y的棋盘问题 题解

    有一个n*m的棋盘,上面有一些棋子,每行每列最多只会有一个棋子,不会有两个棋子八连通.问随机一个空格子作为起点,再随机地选择一个空格子作为终点,求问不经过任意棋子最短路的期望长度是多少.多组,n,m& ...

  3. JSOI Round 2题解

    强行一波题解骗一个访问量好了... http://blog.csdn.net/yanqval/article/details/51457302 http://absi2011.is-programme ...

  4. 通俗理解T检验和F检验

    来源: http://blog.sina.com.cn/s/blog_4ee13c2c01016div.html   1,T检验和F检验的由来 一般而言,为了确定从样本(sample)统计结果推论至总 ...

  5. ubuntu12.04禁止单用户本地无密码root登录

    1)grub-mkpasswd-pbkdf2 拿到类似grub.pbkdf2.sha512.10000.C093FE6825CDCC2F84934ABC406445E92EE098733C60E6D1 ...

  6. HTML5商城开发三 jquery 星星评分插件

    展示:

  7. usb驱动开发22之驱动生命线

    我们总是很喜欢高潮,不是吗?那就好好对待她哦.我们来看一下linux中的高潮部分设备是怎么从Address进入Configured的. usb_set_configuration函数的代码就不贴了,可 ...

  8. blogs for learning java

    曹海成的专栏 http://blog.csdn.net/caohaicheng/article/details/38071097 http://blog.csdn.net/a5489888/artic ...

  9. 推薦使用 Microsoft Anti-Cross Site Scripting Library V3.0

    原文出至: http://blog.miniasp.com/post/2009/07/29/Recommand-Microsoft-Anti-Cross-Site-Scripting-Library- ...

  10. (原创)AD账户误删导致Exchange邮箱被删 莫苦恼

    由于人员变动,离职人员AD账户和邮箱经常要删除.但是在删除AD账户的时候难免会犯错,将在用的用户给删除了,这是个痛苦的事情, 然后你会发现Exchange邮箱也会跟着删除,抓狂了..,还好,幸亏这里进 ...