python其他知识目录

1、一道题,选择商品的序号。程序员和用户各自面对的序号起始值

如有变量 googs = ['汽车','飞机','火箭'] 提示用户可供选择的商品:

0,汽车
1,飞机
2,火箭
用户输入索引后,将指定商品的内容拼接打印,如:用户输入0,则打印 您选择的商品是汽车。

goods=["汽车","飞机","大炮"]
for i in range(,len(goods)):
print(i,goods[i])
num=input("请输入要选择的商品序号:")
num=int(num)
text="您选择的产品是:%s"%(goods[num])
print(text)
-------------结果:
汽车
飞机
大炮
请输入要选择的商品序号:
您选择的产品是:汽车

变形:
1,汽车
2,飞机
3,火箭
用户输入索引后,将指定商品的内容拼接打印,如:用户输入1,则打印 您选择的商品是汽车

goods=["汽车","飞机","大炮"]
for i in range(,len(goods)): #索引是从0开始
print(i+,goods[i]) #用户看的数字,索引+1显示
num=input("请输入要选择的商品序号:") #用户输入的是看的数字,做索引要-
num=int(num)-
text="您选择的产品是:%s"%(goods[num])
print(text)
------------结果:
汽车
飞机
大炮
请输入要选择的商品序号:
您选择的产品是:汽车

不改变原代码,插入一个数字实现的思想

goods=["汽车","飞机","大炮"]
goods.insert(,"") #列表前面插入一个字符
for i in range(,len(goods)): #索引从1开始
print(i,goods[i])
num=input("请输入要选择的商品序号:")
num=int(num)
text="您选择的产品是:%s"%(goods[num])
print(text)
----------------结果:
汽车
飞机
大炮
请输入要选择的商品序号:
您选择的产品是:汽车

2、#1,(1)(1,)()之间类型的区别

v1=
v2=()
v3=(,)
v4=()
print(type(v1),type(),type(v3),type(v4))
------------结果:
<class 'int'> <class 'int'> <class 'tuple'> <class 'tuple'>
# 元组记得加逗号。小括号是元组,小括号只有一个数是数字,小括号一个数字加个逗号才是元组。
[(),(),()]等价于[,,],

3、数据类型总结:

int
 py2/py3
 除法
 强制转换:
  int('字符串') 【重要】
  int(布尔值)
bool
 强制转换:
  bool(整数) -> bool(1)/.. -> bool(0)
  bool(字符串) -> bool('xx') --> bool("")
  bool(列表) -> bool([]) --> bool([])
  bool(元组) -> bool(()) --> bool(空元组)
   v1 = bool(0)
   v2 = bool("")
   v3 = bool([])
   v4 = bool(())
   print(v1,v2,v3,v4) # False
str
 独有功能:upper/lower/split/strip/replace/isdigit/startswith/endswith/format/join/encode
 公共公共:
  len
  索引
  切片
  步长
  for循环
  删除【无】
  更新【无】
 强制转换:
  str(999) # "999"
  str(True) # "True"
  str(["唐开发",'李忠伟']) # "["唐开发",'李忠伟']" --> v2 = "".join(["唐开发",'李忠伟'])
  str(["唐开发",'李忠伟'])
list
 独有功能:append/insert/pop/remove/clear/ extend
 公共功能:
  len
  索引
  切片
  步长
  for循环
  删除
  更新
 强制转换:
  list("asdfadfasfdadfasfd")
   v1 = list("asdfadfasfdadfasfd")
   print(v1)
  list( (11,22,33,44,) )
   v1 = list( (11,22,33,44,) )
   print(v1)
tuple
 独有功能【无】
 公共功能:
  len
  索引
  切片
  步长
  for循环
  删除【无】
  更新【无】
 强制转换:
  tuple('adfadfasdfasdfasdfafd')
   tuple([11,22,33,44])
   v1 = list("asdfadfasfdadfasfd")
  print(v1)
  v1 = list( (11,22,33,44,) )
  print(v1)
  v1 = tuple('adfadfasdfasdfasdfafd')
  print(v1)
总结
常见的类型转换
 # 字符串转数字
 # 数字转字符串
 # 列表转元组
 # 元组转列表
 # 其他转bool时,只有:0 “” [] ()

4、#字符串是数字且有空格,先去掉空格才能int()吗#

li=[" 8 ","  12  "]
mcw=li[]+li[]
mcw2=int(li[])+int(li[])
mcw3=int(" 5 ")+int(" 11 ")
mcw4=int(" 12 ")
print(mcw)
print(mcw2,mcw3,mcw4)
--------------结果:

结论:字符类型的数字带有空格时,使用int()函数转化为数字时无需提前去空格。由上可得,转化的过

程中应该是做了去空格的操作了。

5、字典:

http://www.runoob.com/python/python-dictionary.html

5.1字典简单理解

字典是另一种可变容器模型,且可存储任意类型对象。

字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,格式如下所示:

d = {key1 : value1, key2 : value2 }

键一般是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一。

>>>dict = {'a': 1, 'b': 2, 'b': '3'} >>> dict['b'] '3' >>> dict {'a': 1, 'b': '3'}

值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。

一个简单的字典实例:

dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}

也可如此创建字典:

dict1 = { 'abc': 456 } dict2 = { 'abc': 123, 98.6: 37 }

5.4、#添加键值对以及定义空字典添加键值对,update (增)

dic={}
dic["name"]="mcw"
dic["age"]=
print(dic)
------------结果:
{'name': 'mcw', 'age': 18}
#原有字典.update(另一个字典) 不存在的键添加,存在的键覆盖
userinfo={"username":"mcw","password":123456}
userinfo.update({"age":18,"password":654321})
print(userinfo)
---------------结果:
{'username': 'mcw', 'password': 654321, 'age': 18}

5.5#字典删除元素pop/del(删)

dic={"name":"mcw","age":,"hobby":"music"}      #pop删除
dic.pop("hobby")
print(dic)
-----------结果:
{'name': 'mcw', 'age': }
#del删除
userinfo={"username":"mcw","password":123456}
del userinfo["password"]
print(userinfo)
------------------结果:
{'username': 'mcw'}

5.3字典的修改:(存在就修改/不存在就增加)(改)

---value 是1 "1"不一样的注意

userinfo={"username":"mcw","password":123456}
userinfo["username"]="xiaoma"
print(userinfo)
-------------结果:
{'username': 'xiaoma', 'password': 123456}
#多个键值修改
userinfo={"username":"mcw","password":123456}
userinfo.update({"username":"xiaoma","password":654321})
print(userinfo)
--------------------结果:
{'username': 'xiaoma', 'password': 654321}

5.2、#取字典元素:(查),

userinfo={"username":"mcw","password":}
print(userinfo['username']) #获取字典中单个键的值
print(userinfo.keys()) #keys获取字典中所有的键
print(userinfo.values()) #valuses获取字典中所有的值
------结果:
mcw
dict_keys(['username', 'password'])
dict_values(['mcw', ])
print(type(userinfo.values()))
---------结果:
<class 'dict_values'>
userinfo={"username":"mcw","password":}   #打印整个字典
print(userinfo)
--------------结果:
{'username': 'mcw', 'password': } userinfo={"username":"mcw","password":}
for v1,v2 in userinfo.items(): #items获取所有的键值对
print(v1,v2)
--------------结果:
username mcw
password for循环默认只循环字典中的键
userinfo={"username":"mcw","password":}
for i in userinfo:
print(i)
-------------结果:
username
password 报错:接收的多了
for item,v in userinfo:
print(item,v)
--------结果:
for item,v in userinfo:
ValueError: too many values to unpack (expected )

#字典.get(键)
“字典名["键"]”来取没有的键会报错。

“字典.get(键)”、“字典.get(键,键不存在时的返回值)”同样能获取字典的值,字典中没有这个键的时候指定返回的值默认为none(特殊的数据类型,占内存空间的,是空的地址转为bool为false)

建议:尽量用get取字典,这样可以对键是否存在先做个判断

userinfo={"username":"mcw","password":}
result1=userinfo.get("username")
result2=userinfo.get("age")
print(result1,result2)
---------------结果:
mcw None 使用形式:
result=userinfo.get("键")
if result==None:
print("键不存在")

5.5、#字典多行美观显示,注意不要忘记逗号

userinfo={
"username":"mcw",
"password":
}
print(userinfo)
---------结果:
{'username': 'mcw', 'password': }

5.6、#字典和列表嵌套构建用户登录的案例

user_list=[]
while True:
u=input("请输入用户:")
if u=="N":
break
p=input("请输入密码:")
v={}
v["user"]=u
v["pwd"]=p
user_list.append(v)
print(user_list)
rec_str1=input("请输入用户:")
rec_str2=input("请输入密码:")
flag=
for i in user_list:
if i["user"]==rec_str1 and i["pwd"]==rec_str2:
flag=
if flag==:
print("请进行登录")
else:
print("登录失败!") 完善后:
user_list=[]
while True:
u=input("请输入用户:")
if u=="N":
break
p=input("请输入密码:")
v={}
v["user"]=u
v["pwd"]=p
user_list.append(v)
print(user_list)
rec_str1=input("请输入用户:")
rec_str2=input("请输入密码:")
message="登录失败!"
for i in user_list:
if i["user"]==rec_str1 and i["pwd"]==rec_str2:
message="登录成功!"
break
print(message)
-----------------结果:
请输入用户:mcw
请输入密码:123
请输入用户:xiaoma
请输入密码:123
请输入用户:N
[{'user': 'mcw', 'pwd': '123'}, {'user': 'xiaoma', 'pwd': '123'}]
请输入用户:mcw
请输入密码:123
登录成功!

5.7、单变量和双变量接收字典items()返回值

单变量和双变量接收字典items()返回值,单变量是循环接收字典键值对形成的元组,双变量一个接收键

,一个接收值。

---
v="4+3"
a,b=v.split("+")
print(a,b)
------结果: v="4+3"
a=v.split("+")
print(a[],a[])
------------结果: userinfo={"username":"mcw","password":}
for i in userinfo.items():
print(i,type(i))
-------结果:
('username', 'mcw') <class 'tuple'>
('password', ) <class 'tuple'> userinfo={"username":"mcw","password":}
for k,v in userinfo.items():
print(k,v,type(k),type(v))
------------结果:
username mcw <class 'str'> <class 'str'>
password <class 'str'> <class 'int'>

5.8生成列表中每个元素都是相同键的字典

两个列表元素,一个当字典的键,另一列表每个元素都是字典分隔开来的值。合并成列表中有多个字典元素的方法.

li1=["name","age","hobby"]
li2=["mcw,18,study","xiaoma,19,music","yh,10,eat"]
print([[li1[j]+":"+li2[i].split(",")[j] for j in range(,len(li1))] for i in range(,len(li2))])
mcw=[{li1[j]:li2[i].split(",")[j] for j in range(,len(li1))} for i in range(,len(li2))]
print(mcw)
print(type(mcw[]))
----------------结果:
[['name:mcw', 'age:18', 'hobby:study'], ['name:xiaoma', 'age:19', 'hobby:music'], ['name:yh', 'age:10', 'hobby:eat']]
[{'name': 'mcw', 'age': '', 'hobby': 'study'}, {'name': 'xiaoma', 'age': '', 'hobby': 'music'}, {'name': 'yh', 'age': '', 'hobby': 'eat'}]
<class 'dict'>

===
列表,元组嵌套。加一个字典,嵌套,意义何在呢
int/bool/str list/tuple/dict可以相互嵌套,

字典值:能放各种 所有都能当
字典键 :可以有:元组,数字,布尔值,字符串
               不可以:字典,列表 可hash的可以当key,字典和列表是可变的,不可hash,所以不能当键。

#元组 列表有序,字典无序,Python3.6之后字典有序了。

Python基础知识-05-数据类型总结字典的更多相关文章

  1. python基础知识之数据类型

    一.与用户的交互 古时候,我们去银行取钱,需要有一个银行业务员等着我们把自己的账号密码输入给他, 然后他去进行验证,成功后,我们再将取款金额输入/告诉他 骄傲的现代人,会为客户提供一台ATM机(就是一 ...

  2. python基础知识(七)---数据类型补充、"雷区"、编码

    数据类型补充."雷区".编码 1.数据类型补充 str: #字符串数据类型补充 s1=str(123) #常用于类型转换 print(s1) #capitalize()首字母大写 ...

  3. python基础知识 变量 数据类型 if判断

    cpu 内存 硬盘 操作系统 cpu:计算机的运算和计算中心,相当于人类的大脑 飞机 内存:暂时存储一些数据,临时加载数据和应用程序 4G 8G 16G 32G 速度快,高铁 断电即消失 造价高 硬盘 ...

  4. 第二章(1.5)Python基础知识(数据类型)

    一.list(列表) list是一种有序的集合,可以随时添加和删除其中的元素 用len()函数可以获得list元素的个数 列表操作包含以下函数: cmp(list1, list2):比较两个列表的元素 ...

  5. python基础知识第五篇(字典)

    字典(dict) info={ "k1":"v1", "k2":"value" } 字典的value可以是任意值,布尔值 ...

  6. python基础知识0-5(单双向队列)

    #多项队列import collections #导入模块d = collections.deque() #deque方法d.append('1') #添加元素d.appendleft('2')d.a ...

  7. Python基础知识(五)------字典

    Python基础知识(四)------字典 字典 一丶什么是字典 ​ dict关键字 , 以 {} 表示, 以key:value形式保存数据 ,每个逗号分隔 ​ 键: 必须是可哈希,(不可变的数据类型 ...

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

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

  9. python 爬虫与数据可视化--python基础知识

    摘要:偶然机会接触到python语音,感觉语法简单.功能强大,刚好朋友分享了一个网课<python 爬虫与数据可视化>,于是在工作与闲暇时间学习起来,并做如下课程笔记整理,整体大概分为4个 ...

  10. python基础知识小结-运维笔记

    接触python已有一段时间了,下面针对python基础知识的使用做一完整梳理:1)避免‘\n’等特殊字符的两种方式: a)利用转义字符‘\’ b)利用原始字符‘r’ print r'c:\now' ...

随机推荐

  1. 使用XWAF框架(1)——Web项目的代码分层

    建议在Eclipse环境下使用XWAF框架来开发用户的Web项目,并遵循以下步骤和约定. 1.获取XWAF框架压缩包文件 程序员点击下列地址免费下载XWAF框架的压缩包文件:XWAF框架压缩文件 2. ...

  2. 轻量ORM-SqlRepoEx (十二)SqlRepoEx 2.0.1 至 2.2.0 版本更新说明

    一.功能变化 (一).强化特性支持 1.部分类型拥有复杂属性: 2.有些属性不是来源于数据库 3.用户在原来的代码中使用 SqlRepoEx ,减少字段与数据库字段之间的冲突: 4.为支持新的特性及优 ...

  3. Ionic3项目实践记录

    Ionic3首次项目实践记录 标签(空格分隔): Angular Ionic Ionic3踩坑 1. 路由懒加载(lazy load) 如果设置了懒加载,就必须全部懒加载(包括TabsPage),否则 ...

  4. code#5 P4 逻辑树

    逻辑树   时间限制: 3.0 秒 空间限制: 512 MB 相关文件: 题目目录 题目描述 有一棵树,叫逻辑树. 这个树有根,有 2N−1 个节点,其中 N 个叶子,每个非叶节点恰好有两个孩子. 每 ...

  5. MySQL----MySQL数据库入门----第四章 单表查询

    select [distinct] * | 字段1,字段2,字段3... from 表名 [where 条件表达式] [group by 字段名] [having 条件表示式] [order by 字 ...

  6. npm audit fix

    执行npm install 出现如下提醒   added 253 packages from 162 contributors and audited 1117 packages in 42.157s ...

  7. 一条SQL语句的千回百转

    SQL语言相信大家都不陌生,从本质上来说,它是一种结构化查询语言,是用来数据库之间的通信的编程语言.作为一名Java程序员,我们从Java角度来看,SQL语言相当于Java接口,而数据库是实现这个接口 ...

  8. Rabbitmq(一)

              ClientA,ClientB: 为Producer,数据的发送方. Client1,Client2,Client3:为Consumer,数据的接收方. Exchange:消息交换 ...

  9. [project X] tiny210(s5pv210)上电启动流程(BL0-BL2)

    建议参考文档: S5PV210-iROM-ApplicationNote-Preliminary-20091126 S5PV210_UM_REV1.1 项目介绍参考 [project X] tiny2 ...

  10. Go学习笔记01

    前言 Go(Golang)是Google开发的一种强静态类型.编译型.并发型,并具有垃圾回收功能的编程语言,所以使用Go编写的程序相比nodejs之类的弱类型语言,可以提前在编译阶段发现错误,而且由于 ...