当前位置: 首页 > news >正文

python学习笔记(数据类型)

python数据类型:
int 类型
float 小数类型
string 字符串
布尔类型 a = True b = False


1.列表,也称数组或list或array。它的表达方式通过下标或索引或编号来呈现。
students=['张三','李四','王五','赵六']
print(students[0])
注:最前面一个元素的下标为0,最后面一个元素的下标为-1
cities = []
#增加:(两种方式)
cities.append('北京') 在列表的末尾增加一个元素
cities.insert(0,'上海') 在列表的指定位置增加一个元素

#删除:
cities.pop(1) 删除指定位置的元素
cities.remove('北京') 删除指定的元素
cities.clear() 清除list
del cities(0) 删除指定位置元素

#修改:
cities[-1]='南京' 修改指定位置的元素,若指定的位置不存在会报错

#查询:
print(cities[1]) 查询指定位置元素
print(cities.index('广州')) 获取元素的下标,如果找不到指定元素会报错
print(cities.count('广州')) 获取指定元素在list出现的次数

#.inverse() 反转,把list反转一下
new_lis=['hello','world']
print(new_lis.verse())

#.sort
nums=[3,2,5,7,1,0]
nums.sort() #排序,升序
nums.sort(reverse=True) 降cities2=['武汉']#print(cities + cities2) 合并list
#print(cities *3)  复制3次

#多维数组
words=['view','code','tools',
['price','num',198,
['hello','usa','吃鸡']
] ]
print(words[-1][-1][1])

#切片,切片是list取值的一种方式(切片操作同样也适用于字符串)
nums=['张三','李四','王五','赵六']
print(nums[0])
print(nums[1:3]) 顾头不顾尾,从第1个开始取,取到第3-1个为止
print(nums[1:]) 如果从某个下标开始取,取到末尾结束,那么末尾的下标可以省略不写
print(nums[:2]) 如果是从头开始取,取到后面某个下标结束,那么开头的下标可以不写
print(nums[:]) 取所有的

lis = list(range(1,21))
print(lis)
print(lis[::2]) 步长,隔几个取一次
print(lis[::-2]) 步长,隔几个取一次
如果步长是正数的话,从左往右边开始取值
如果步长是负数的话,从右边往左边开始取值
print(lis[::-1]) #反转list

练习:

#校验用户名是否合法:
   # 输入账号       #input
# 如果账号存在的,提示已经被注册,如果不存在的,就让他注册 all_users 【 】
#不能为空 #strip()
#用户名长度长度6-12之间 len()
#最多输入3次 #循环

all_users = ['张三','李四','wifi']
for i in range(3):
username = input('请输入账号:').strip()
if len(username)>5 and len(username)<13:
if all_users.count(username)>0:
print('这个名字太好啦,已经被注册啦!')
else:
print('名字不错,赶紧注册吧!')
break
else:
print('用户名长度不合法!长度6-12之间!')
else:
print('失败次数过多')

2.字典 {key:value}键值对
特点:
1.取数据方便
2.速度快
3.字典是无序的
4.如果直接循环一个字典的话,循环的是字典的key

info={'name':'fancy','sex':'女','addr':'地球'}
#查询:
print(info.get('phone')) 取不到这个key的话,返回None
print(info.get('phone',110)) 取不到这个key的话,默认为110
print(info['phone']) 若Key不存在时会报错

#增加:
info['phone']='13600000000' 增加一个key,如果key存在的话,会修改原来key对的的value
info.setdefault('age':32) 增加一个key,如果key存在的话,不会修改原来key里面的value

#修改:
info['name']='lucy'

#删除:
info.pop('name') 删除指定key的键值对
info.popitem() 随机删除一个key
del info['phone'] 删除指定key的键值对
info.clear() 清除字典

#字典常用方法:
print(info.values()) 获取到字典所有的value
print(info.keys()) 获取到字典所有的key
print(info.items()) 获取字典多有的键值对,k-v

注意:
1.循环一个字典的话,循环的是字典的key,如:
for p in people:
  print(p)
2.循环的时候,同时取key和value:
for k,v in people.items():
  print(k,v)


练习:
users = {
'Lucy':'123456',
'lili':'456789',
}
#所有的账号和密码
# username
# pwd
# cpwd
# print( '123456' in users ) #字典里面用in来判断的话,只是判断key是否存在
for i in range(3):
username = input('账号:').strip()
passwd = input('密码:').strip()
cpasswd = input('密码确定:').strip()
if username=='' or passwd=='' or cpasswd=='':
print('用户名/密码不能为空')
elif username in users:
print('用户名已经被注册!')
elif passwd!=cpasswd:
print('两次输入的密码不一致')
else:
print('恭喜,注册成功!')
# users.setdefault(username,passwd)
users[username]=passwd
break
else:
print('错误次数过多')
print(users)
 

3.元组:元组也是一个list,它和List的区别是元组里的元素无法修改
同理,循环、切片,小标取值
注:若元组里只有一个元素的话,必须在这个元素后加“,”,比如:t=(1,)
print(t.index(2)) 找到元素的下标
print(t.count(2)) 找到元素的个数

4.常用的字符串方法:
# a='   字 符 串    \n\n\n\n\n'
# c = a.strip() #默认去掉字符串两边的空格和换行符
# c= a.lstrip() #默认去掉字符串左边的空格和换行符
# c = a.rstrip() #默认去掉字符串右边的空格
# print('c...',c)
# print('a...',a)

words = 'http://www.baidu.com'
# print(words.strip('du')) #如果strip方法指定一个值的话,那么会去掉这两个值
# print(words.count('a')) #统计字符串出现的次数
#print(words.index('z')) #找下标,如果元素找不到的话,会报错
# print(words.find('z')) #找下标,如果元素找不到的话,返回-1
# print(words.replace('bai','BAI')) #替换字符串
# print(words.isdigit()) #判断字符串是否为纯数字
# print(words.startswith('http')) #判断是否以某个字符串开头
# print(words.endswith('.jpg')) #判断是否以某个字符串结尾
# print(words.upper()) #变成大写的
# print(words.lower()) #变成小写的

username = 'abcdefADS12345@#¥'
# print(username.isalpha()) #判断字符串是否全为字母
# print(username.isalnum()) #判断是否包含字母和数字,它是只要有字母或者有数字就返回true
 

转载于:https://www.cnblogs.com/fancyl/p/8658782.html

相关文章:

  • P1073 最优贸易
  • 080.mycat和mycopy
  • [模板] LIS
  • 用户管理 useradd userdel usermod
  • canvas填充样式
  • 公钥加密—私钥签名
  • 网络应用框架Netty快速入门
  • Redux 中间件分析
  • c# yield关键字原理详解
  • 一个日期处理类库moment.js
  • 使用Kolla构建Pike版本OpenStack Docker镜像
  • spring MVC 使用 hibernate validator验证框架,国际化配置
  • Kubernetes软件包管理系统-Helm架构
  • A - 夹角有多大(题目已修改,注意读题)
  • 卸载openssl后yum无法使用,ssh无法连接的解决办法
  • 【140天】尚学堂高淇Java300集视频精华笔记(86-87)
  • 【面试系列】之二:关于js原型
  • AzureCon上微软宣布了哪些容器相关的重磅消息
  • canvas 高仿 Apple Watch 表盘
  • CSS居中完全指南——构建CSS居中决策树
  • Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
  • Java 实战开发之spring、logback配置及chrome开发神器(六)
  • Laravel Mix运行时关于es2015报错解决方案
  • laravel 用artisan创建自己的模板
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • Promise面试题,控制异步流程
  • session共享问题解决方案
  • spring boot下thymeleaf全局静态变量配置
  • Web标准制定过程
  • 程序员该如何有效的找工作?
  • 分布式熔断降级平台aegis
  • 关于Java中分层中遇到的一些问题
  • 实战:基于Spring Boot快速开发RESTful风格API接口
  • 写给高年级小学生看的《Bash 指南》
  • 源码安装memcached和php memcache扩展
  • Play Store发现SimBad恶意软件,1.5亿Android用户成受害者 ...
  • ​无人机石油管道巡检方案新亮点:灵活准确又高效
  • ​香农与信息论三大定律
  • #QT(智能家居界面-界面切换)
  • #我与Java虚拟机的故事#连载09:面试大厂逃不过的JVM
  • $var=htmlencode(“‘);alert(‘2“); 的个人理解
  • (1)SpringCloud 整合Python
  • (C语言)二分查找 超详细
  • (Matlab)基于蝙蝠算法实现电力系统经济调度
  • (分享)一个图片添加水印的小demo的页面,可自定义样式
  • (附源码)springboot炼糖厂地磅全自动控制系统 毕业设计 341357
  • (生成器)yield与(迭代器)generator
  • (转)清华学霸演讲稿:永远不要说你已经尽力了
  • (转载)深入super,看Python如何解决钻石继承难题
  • (轉貼) 2008 Altera 亞洲創新大賽 台灣學生成果傲視全球 [照片花絮] (SOC) (News)
  • ***检测工具之RKHunter AIDE
  • ./configure,make,make install的作用(转)
  • .bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别
  • .NET CORE Aws S3 使用
  • .NET Core MongoDB数据仓储和工作单元模式封装