一、变量、元组的赋值和循环删除

(1)多个变量同时赋值

#多个变量赋值
a,b,c,d=1,2,3,4
x=y=m=n=520
print(a,b,c,d,x,y,m,n)

(2)不引入第三方变量下,交换a、b赋值

a,b=1,2
#python方法
a,b=b,a        #python后台会引入第三方变量 #数学方法(字符串不适用)
a=a+b
b=a-b
a=a-b

(3)变量重新复制之后寻址地址会改变

a='hahah'
b=a               #list中,b和a指向同一内存地址
print('赋值之前a:',id(a))
print('赋值之前b:',id(b))
a='sk'    #变量重新赋值,重新分配地址空间
print(a)
print(b)
print('赋值之后a:',id(a))
print('赋值之后b:',id(b))

(4)循环删除,每次循环下标变化导致删除错误元素

a=[1,1,2,3,4,5,6,43]
for i in a:
if i%2!=0:
a.remove(i)
print(a) [1, 2, 4, 6]          #每循环一次数组修改一次,下标修改一次,循环删list会导致下标错乱 解决方法:通过另外一个相同list来负责循环查找,通过元素内容删除
a=[1,1,2,3,4,5,6,43]
b=[1,1,2,3,4,5,6,43]   #或者b=a[:]
for i in b:
if i%2!=0:  
a.remove(i)        #i此时为具体元素,通过元素删除而不是下标删除

二、list切片 

print(stus[1:3])                    #list切片,两个下标之间切片,包含第一个下标,不包含最后一个下标,顾头不顾尾
stus[2:-1]    #-1表示结尾
stus[:3]    #从开头取可不写前边的,取到最后可不写后边的

 print(nums[0:11:3]) #3为步长,隔几个取一个,不写默认隔一个取一个(挨着取),0/11可不写
 print(nums[11:0:-1]) #步长为负数,从结尾开始取,11/0可不写
 print(nums[5:1:-1]) #倒序取

三、布尔值:非空即真,非0即真

a=[]
b=''
c=()
d=None
#以上都是空,都是假 ——>if not usermae or not passwd or not repasswd 判断输入是否为空 e=1 #真
f=0 #假 not a #取反
if a :
print('真')
else :
print('假') import this          #可以查看内部函数怎么定义的

四、元组

元组,值不可以修改,没有增删改,防止误操作

cities=('bj','tj')
#cities[0]='sd'      #定义好后不允许修改,修改会报错 sql=('ip','3306','root','1234566','jxz') 查
cities[0]
cities.count('bj')
cities.index('bj') s='涛涛'
#s[0]='许'       #字符串定义好后也不允许修改,可以重新赋值
print(s)
print(s.replace('涛','aa'))   #字符串的方法只是返回新的值,不会修改字符串
print(s)

五、字典

 字典以K-V形式存储,字典是无序的

shanbl={
'name':'shanbl',
'age':18,
'phone':18511401127,
'qq':675516462,
'age':17      #相同key,后边会覆盖以前的
}
print(shanbl['name']) #增
shanbl['女朋友']='where'
shanbl.setdefault('girlfrind','come here') shanbl['age']=28 #没有添加,有就修改
shanbl.setdefault('age',27) #如果key已经存在,不会修改 print(shanbl) #修改
shanbl['女朋友']='where' #这种方法。能增加,能修改 #删除
shanbl.pop('age') #根据指定的key删除,key不存在会报错
del shanbl['name'] #根据指定的key删除,key不存在会报错
#shanbl.clear() #清空字典
shanbd={'gege':'sbd'}
shanbl.update(shanbd) #将一个字典b加入另一个字典a,如果有重名,更新
print(shanbl.keys())
print(shanbl.values()) #取值
print(shanbl['qq']) #不存在报错,不实用
print(shanbl.get('phone1','18618171127')) #不存在返回none,可自定义取不到时的默认值 for i in shanbl :
print(i) #只能取到key #for i in shanbl.items() :
print(i) #同时 取到key和value d={'a':1,'b':2}
print(d.items())      #items先把字典转为list for k,v in d.items() :
print(k,v) for k in d :
print(k,d.get(k))    #循环key,并根据key去到值,性能上快

小练习:

#记录学生是否交作业
#输入学生名字
#日期
#是否已交 data = {'tt':
{'2018':'未交'} } for i in range (5):
name = input ('name').strip()
date = input ('date').strip()
status=input('status')        #可以不写 # d[data]=status
# data[name]=d
# print(d,data) if name and data :
status = '已交' if status else '未交' #三元表达式
if name in data :       #判断学生是否存在
data[name][date]=status    #如果学生已存在,直接添加日期和状态
else :
tmp = {date:status}     #{2018:未交} 先构造一个小字典
data[name]=tmp     #给大字典添加学生,并赋值小字典 print('添加后的',data) 三元表达式

五、循环查找

 (1)列表、元组的循环查找

   a=['a','b','c']

   #a=('a','b','c')

   for i in a :

    print(i)

  (2)字典的循环查找

   z={'a':1,'b':2,'c':3}

   for i in z :

    print(i)              #只能取到key

   for i,j in z.items() :         #通过字典的items函数获取key和value变量 

    print(i,j)

   for i in z :

    print(i,z.get(i))          #通过字典get函数取value

  (3)字符串循环查找

    a='assfgghjj' 

    for i in a :

     print(i)             #循环取每个字符

  (4)读文件循环取每一行

    f=open('data','r')

    for line in f :

      print(line)

Python入门(白银篇)的更多相关文章

  1. Python入门 io篇

    简单demo with open('d:/pydemo/pythonStart/fun1.py', 'r') as f: #print(f.read()) while True: line = f.r ...

  2. python入门第一篇

    python里面 单行注释用:#被注释内容 多行注释用:"""被注释内容""" 要想py2.7和py3.5都能运行,必须在文件头部加: #/ ...

  3. python入门第二篇

    整体注释:ctrl+? 1.运算符 +  -  *  /   //(取商) **(幂) %(求余) 判断某个东西是否在某个东西里面包含:  in           not in 不等于: <& ...

  4. python入门篇

    第一篇:python入门 第二篇:数据类型.字符编码.文件处理 第三篇:函数 第四篇:模块与包 第五篇:常用模块 第六篇:面向对象 第七篇:面向对象高级 第八篇:异常处理 第九篇:网络编程 第十篇:并 ...

  5. Python之路,第一篇:Python入门与基础

    第一篇:Python入门与基础 1,什么是python? Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言. 2,python的特征: (1)易于学习,易于利用: (2)开 ...

  6. 智普教育Python视频教程之入门基础篇,python笔记

    智普教育Python视频教程之入门基础篇,python笔记 print id()内存地址 type()变量类型 windows命令行下edit命令 python数据类型不需要指定类型 定义hostna ...

  7. Python入门篇-面向对象概述

    Python入门篇-面向对象概述 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.语言的分类 面向机器 抽象成机器指令,机器容易理解 代表:汇编语言 面向过程 做一件事情,排出个 ...

  8. Python入门篇-StringIO和BytesIO

    Python入门篇-StringIO和BytesIO 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.StringIO(用于文本处理) 1>.使用案例 #!/usr/bin ...

  9. Python入门篇-文件操作

    Python入门篇-文件操作 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.文件IO常用操作 open:打开 read:读取 write:写入 close:关闭 readlin ...

  10. Python入门篇-functools

    Python入门篇-functools 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.reduce方法 reduce方法,顾名思义就是减少 reduce(function,se ...

随机推荐

  1. Cassandra 原理介绍

    Cassandra最初源自Facebook,结合了Google BigTable面向列的特性和[Amazon Dynamo](http://en.wikipedia.org/wiki/Dynamo(s ...

  2. 无法为具有固定名称“System.Data.SqlClient”的 ADO.NET 提供程序加载在应用程序配置文件中注册的实体框架提供程序类型“System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer”。请确保使用限定程序集的名称且该程序集对运行的应用程序可用。有关详细信息,请参阅 http://go.m

    Windows服务中程序发布之后会如下错误: 无法为具有固定名称“System.Data.SqlClient”的 ADO.NET 提供程序加载在应用程序配置文件中注册的实体框架提供程序类型“Syste ...

  3. PDF怎么添加文字水印与图片水印

    现在是个知识分享时代,但不可避免的盗版也无处不在,不知道在我们大家身边有没有遇到过这样的情况:自己煞费苦心制作的PDF文档不知道在什么时候就会被别人给盗用了,那么如何才能尽量避免这个问题呢?今天带大家 ...

  4. java爬虫实现爬取百度风云榜Top10

    最近在项目中遇到了java和python爬虫进行程序调用和接口对接的问题, 刚开始也是调试了好久才得出点门道. 而后,自己也发现了爬虫的好玩之处,边想着用java来写个爬虫玩玩,虽说是个不起眼的dem ...

  5. window10 蓝牙只能发不能收文件解决办法

    打开“通过蓝牙发送和接收文件”,在“接收文件”界面中无法接收蓝牙发送的文件 解决办法: 1. win+R后,输入msconfig,回车 2. 点击服务,勾选隐藏Microsoft服务,点击全部禁用 3 ...

  6. A页面跳转到B页面后打开指定tabs标签

    A页面: <!DOCTYPE html><html lang="en" class="no-js">    <head>   ...

  7. 【JAVA】高并发优化细节点

    高并发优化细节点: 微服务化 如何发现系统瓶颈?   如何高效利用有限内存: 使用基本类型 使用数组,不用集合 自定义map与数据结构   Integer—>int, Set<Intege ...

  8. 【webpack系列】从零搭建 webpack4+react 脚手架(二)

    html文件如何也同步到dist目录?bundle.js文件修改了,万一被浏览器缓存了怎么办?如何为导出的文件加md5?如何把js引用自动添加到html?非业务代码和业务代码如何分开打包?如何搭建开发 ...

  9. youtube去广告

    https://www.digitbin.com/youtube-ads-block/ 1. OGYouTube | Mod AdBlocker YouTube OGYouTube App is a ...

  10. __builtin_expect — 分支预测优化

    1.引言 在很多源码如Linux内核.Glib等,我们都能看到likely()和unlikely()这两个宏,通常这两个宏定义是下面这样的形式. #define likely(x) __builtin ...