Python之路【第二篇】python基础 之基本数据类型
运算符
1、算数运算:
2、比较运算:
3、赋值运算:
4、逻辑运算:
5、成员运算:
name = "yehaoran " # in 判断ye是否在name里面 在的话返回ok 不在返回not
# if "ye" in name :
# print("ok")
# else:
# print("not") if "ran" not in name:
print("ok")
else:
print("not") # in not 判断ran是否在不name里面 不在的话返回ok 在返回not
成员运算
基本数据类型
1、数字
int(整型)
在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807
1 # 数字 int
2 # python3里,1111111111111122333数字多长都用int
3 # python2里,数字太大用long小的用int
4
5 # 1、将字符串转换成数字 type 查看数据类型
6 # a = "123"
7 # print(type(a))
8 # b = int(a )
9 # print(type(b))
10 # b = b + 100
11 # print(b)
12
13
14 # 2、以16进制的形式转换成10进制
15 # num = "a"
16 # v = int(num, base=16)
17 # print(v)
18
19
20 # 3、当前数字的二进制,至少用n位表示
21 # # a = 123
22 # # r = a.bit_length()
23 # # print(r)
int 的集中常见用法
字符串的格式 : "hello world"
- 移除空白
- 分割
- 长度
- 索引
- 切片
# 二、字符串 str # 1、首字母大写
# name = "xiaoming"
# print(name.capitalize()) # 2、 casefold、lower两个都是把大写字母转换成小写最好用第一个 。upper把小写转化成大写
# name = "xiaoMing"
# v = name.casefold()
# print(v)
# v2 = name.upper() 重要
# v1 = name.lower() 重要
# print(v1)
# print(v2) # 3、设置宽度并将内容居中
# 20代指总长度
# * 代表空白未知填充 ,一个字符,可有可无
# a1 = "alex"
# ret = a1.center(20, '*')
# print(ret)
# 在右边填充
# test = "alex"
# v = test.ljust(20,"*")
# print(v)
# 在左边填充
# test = "alex"
# v = test.rjust(20,"*")
# print(v) # test = "alex"
# v = test.zfill(20)
# print(v) #忽略 # 4、去字符串中寻找,寻找子序列出现的次数
# a1 = "alex is alph"
# ret = a1.count("a")
# ret = a1.count("al",0,10)
# print(ret) # 5、查看是否已什么结尾 重要***
# 查看是否已什么开始
# name = "xiaoMing"
# v = name.endswith('g')
# v1 = name.startswith('xi')
# print(v)
# print(v1) # 6、从开始往后面找,找到第一个之后,获取其位置,未找到返回一个-1 find重要
# name = "xiaoming"
# v = name.find('ao',2,6)#从那个位置开始找 前面的是大于等于 后面是小于
# # print(v)
# name = "xiaoming" #index 用法同find 但是如果index找不大值直接报错
# v = name.index("ming")
# print(v) # 7、格式化输出,将一个字符串中的占位符替换为指定的值 format重要
# test = 'i am {name},age {a}'
# print(test)
# v = test.format(name = 'xiaoming',a = 24)
# print(v)
# test = 'i am {0},age {1}'
# print(test)
# v = test.format('xiaoming',24)
# print(v)
# test.format_map的方法类似format 区别如下图
# test = 'i am {name},age {a}'
# print(test)
# v = test.format(name = 'xiaoming',a = 24)
# v1 = test.format_map({"name":"xiaoming","a":19})
# print(v)
# print(v1) # 8、判段字符串中是否只包含 字母和数字
# name = "uuuuaa888"
# v = name.isalnum()
# print(v) # 9、判断是否是字母
# test = "assd"
# v = test.isalpha()
# print(v) # 10、当前输入是否是数字
# test = "1112"
# v1 = test.isdecimal() #最常用
# v2 = test.isdigit()
# v3 = test.isnumeric()
# print(v1,v2,v3) # 11、 字母、数字、下划线;标识符 def class
# a = "def"
# v = a.isidentifier()
# print(v) # 12、是否出现不可显示的字符
# \t 制表符
# \n 换行
# test = "ooos\tsdjf"
# v = test.isprintable()
# print(v) # 13、是否全是空格
# test = "aaaf aass"
# v = test.isspace()
# print(v) # 14、判断是否是标题
# test = "Return True if all cased characters in S are uppercase and
# v1 = test.istitle()
# print(v1)
# v2 = test.title()
# print(v2)
# v3 = v2.istitle()
# print(v3) # 15、非常重要*****15、将字符串中的每一个元素按照指定分隔符进行拼接
# test = "你是风儿我是沙"
# v = " ".join(test)
# print(v) # 16、 去除空白 去除\n \t 指定内容的时候把指定的内容去掉
# test = "alex"
# v = test.lstrip("ax") # 移除指定字符串
# # 有限最多匹配
# v = test.rstrip()
# v = test.strip() # 很重要 # 17、# 对应关系替换
# test = "aeiou"
# test1 = "12345"
# v = "asidufkasd;fiuadkf;adfkjalsdjf"
# m = str.maketrans("aeiou", "12345")
# new_v = v.translate(m)
# print(new_v) # 18、 分割为三部分
# test = "testasdsddfg"
# v = test.partition('s')
# print(v)
# v = test.rpartition('s')
# print(v)
# 21 以xxx开头,以xx结尾 很重要
# test = "backend 1.1.1.1"
# v = test.startswith('a')
# print(v)
# test.endswith('a) # 22 大小写转换
# test = "ALEX"
# v = test.swapcase()
# print(v) # 23 字母,数字,下划线 : 标识符 def class
# a = "def"
# v = a.isidentifier()
# print(v) # 24 将指定字符串替换为指定字符串
# test = "alexalexalex"
# v = test.replace("ex",'bbb')
# print(v)
# v = test.replace("ex",'bbb',2)
# print(v) ##################### 7个非常重要的 ######################
# join # '_'.join("asdfasdf")
# split
# find
# strip
# upper
# lower
# replace ####################必须要会的####################### # # 1、索引
# test = "alex"
# # 索引 , 下标 , 获取字符串中的某一个字符
# v = test[3]
# print(v) # 2、切片
# test = "alex"
# v = test[0:2] #0<= <2 -1代表最后的位置
# print(v) # 3、len 查看字符串中有多少个字符组成
# test = "alex"
# v = len(test)
# print(v) # 4、while循环
# test = "asdfghjkl"
# index = 0
# while index < len(test) :
# v = test[index]
# print(v)
#
# index += 1
# print("======")
#
# for i in test : 和上面的while循环实现的效果一样
# print(i) # PS :字符串一旦被创建就不可以被修改
# 一旦修改或者拼接,都会造成重新生成字符串 # 5 range将文字 对应的索引打印出来:
# test = input(">>>>>")
# for i in range(0 ,len(test)):
# print(i,test[i]) #实现思路
# test = input(">>>>>")
# for i in test :
# print(i)
# l = len(test)
# print(l)
# r = range(0,l)
# for i in r :
# print(i,test[i])
# 19 分割为指定个数
# v = test.split('s',2) 很重要
# print(v)
# test.rsplit() # 20 分割,只能根据,true,false:是否保留换行
# test = "asdfadfasdf\nasdfasdf\nadfasdf"
# v = test.splitlines(False)
# print(v) str 用法和注意事项 重点
str 用法和注意事项 重点
name_list = ['alex', 'seven', 'eric']
或
name_list = list(['alex', 'seven', 'eric'])
基本操作:
- 索引
- 切片
- 追加
- 删除
- 长度
- 切片
- 循环
- 包含
# list # 类,列表
# li = [1, 2, 3, ["alex", 12, "thinks"], "want", "to"]
# 1、列表的格式
# 2、列表中可以嵌套任何类型
# 中括号括起来
# ,逗号分割每个元素
# 列表中的元素可以是 数字,字符串,布尔值,所有的都能放进去
# 3、索引取值
# print(li[3])
# 4、切片,切片的结果是列表
# print(li[3:-1])
# 列表支持while 、 for循环
# 5、for i in li :
# print(i) # 列表的元素是可以被修改的
# li = [1, 2, 3, ["alex", 12, "thinks"], "want", "to"]
# #################### 6、索引修改 删除
# 修改
# li[1] = 120
# print(li)
# li[2] = [1,3,5,]
# print(li)
# 删除
# del li[1]
# print(li)
# #####################7、 切边操作修改 删除
# 修改
# li[1:3] = [120,90]
# print(li)
# # 删除
# del li[2:6]
# print(li) # li = [1, 2, 3, ["alex", 12, "thinks"], "want", "to"]
# # 8in 操作 根据逗号分割作为一个整体最为一个整体
# v = 1 in li
# print(v) # ##########################转换#######
# 把str 转化成列表
# a = "asdf"
# new_a = list(a)
# print(new_a) # 列表转换字符串 列表中出现数字自己写for循环
# li = [11,"22","alex"]
# s = ""
# for i in li:
# s = s +str(i)
# print(s)
# 列表中的元素只有字符串 ; 直接用 join 方法:
# li = [ "123" , "1lex"]
# v = "".join(li)
# print(v) # ###################灰魔法:list 类中提供的方法 ##################
# 1、原来的值最后追加
# 对象 方法(。。) # 变量 li 对象调用append方法 里面的元素叫参数
# li = [11, 22, 33, 44, 22]
# li.append(99)
# print(li) #2、清空列表
# li = [11, 22, 33, 44, 22]
# li.clear()
# print(li) # 3、拷贝 ,浅拷贝
# li = [11, 22, 33, 44, 22]
# v = li.copy()
# print(v) # 4、计算列表中元素出现的次数
# li = [11, 22, 33, 44, 22]
# v = li.count(22)
# print(v) # 5、扩展原列表 ,参数 :可迭代对象
# li = [11, 22, 33, 44, 22]
# li.append([222])
# print(li) # li = [11,22,33,22,44]
# li.extend(["alex",998])
# print(li) # 用for循环extend后面加的参数循环打印加到列表里
# # 例如 :
# li.extend("alex")
# print(li) # 6、根据值获取当前值索引的位置 (左边优先)
# li = [11, 22, 33, 44, 22]
# v = li.index(33)
# print(v) # 7、在指定索引位置插入元素
# li = [11, 22, 33, 44, 22]
# li.insert(0,22)
# print(li) # 8、删除某个值(1、指定索引 : 2、默认最后一个)并获取删除的值
# li = [11, 22, 33, 44, 22]
# v = li.pop(3)
# print(v)
# print(li) # 9、删除列表中的指定值,左边优先
# li = [11, 22, 33, 44, 22]
# li.remove(22)
# print(li)
# PS :pop remove del li[0] del li[7:9] clear #都是删除 # 10、将列表中进行反转
# li = [11, 22, 33, 44, 22]
# li.reverse()
# print(li) # 11、列表的排序
# li = [1,77,55,99,22,]
# li.sort() #默认从小到大排序
# li.sort(reverse= True) # 从大到小排序
# print(li)
list 用法和注意事项
ages = (11, 22, 33, 44, 55)
或
ages = tuple((11, 22, 33, 44, 55))
# 1、元组的一级元素不可被修改/删除/增加
# tuple
# 一般写元组的时候,推荐在后面加个,逗号
# 构成方式 tu = (11,222,"alex",(1,2),[(22,33)]) # 2、元组是可以索引的切片取值
# tu = (11,222,"alex",(1,2),[(22,33)])
# # 元组是有序的
# v = tu[3][0][0]
# print(v)
# v = tu[3]
# print(v)
# tu[3][0] = 39
# print(tu) # 3、tuple是可迭代对象
tuple
6、字典(无序)
person = {"name": "mr.wu", 'age': 18}
或
person = dict({"name": "mr.wu", 'age': 18})
常用操作:
- 索引
- 新增
- 删除
- 键、值、键值对
- 循环
- 长度
# 字典
# 1、基本构成
# info = {
# "k1" : "v1", #键值对
# "k2" : "v2",
# } # 2、字典中的value可以是任何值 想嵌套多少嵌套多少层
# info = {
# "k1": 18,
# "k2": True,
# "k3": [
# 11,
# [],
# (),
# 22,
# 33,
# {
# 'kk1': 'vv1',
# 'kk2': 'vv2',
# 'kk3': (11,22),
# }
# ],
# "k4": (11,22,33,44)
# } # 3、列表、字典不能做为字典的key 如果key相同,输出的时候不打印 # info = {
# "k1" : 18,
# "k2" : True,
# "k3" : [
# 11,
# [],
# (),
# 22,
# 33,
# {
# 'kk1': 'vv1',
# 'kk2': 'vv2',
# 'kk3': (11,22),
# }
# ],
# "k4" : (11,22,33,44),
# "True" : "123"
# #[1,2,3,"alex"]: 123,列表不能做key
# #{"k1":"v1"} : 123, 字典不能做key
# }
# print(info) # 4、字典是无序的 # 5、索引方式找到指定元素 # info = {
# "k1": 18,
# "k2": True,
# "k3": [
# 11,
# [],
# (),
# 22,
# 33,
# {
# 'kk1': 'vv1',
# 'kk2': 'vv2',
# 'kk3': (11,22),
# }
# ],
# "k4": (11,22,33,44)
# }
# # v = info["k1"]
# # print(v)
# # v = info[2]
# # print(v)
# v = info["k3"][5]["kk3"][0]
# print(v) # 6、字典支持del 删除
# info = {
# "k1": 18,
# "k2": True,
# "k3": [
# 11,
# [],
# (),
# 22,
# 33,
# {
# 'kk1': 'vv1',
# 'kk2': 'vv2',
# 'kk3': (11,22),
# }
# ],
# "k4": (11,22,33,44)
# }
# del info["k1"]
# del info["k3"][5]["kk1"]
# print(info) # 7 for 循环
# info = {
# "k1": 18,
# "k2": True,
# "k3": [
# 11,
# [],
# (),
# 22,
# 33,
# {
# 'kk1': 'vv1',
# 'kk2': 'vv2',
# 'kk3': (11,22),
# }
# ],
# "k4": (11,22,33,44)
# }
# for item in info : #循环字典中的key
# print(item) # for i in info.keys(): #循环字典中的key
# print(i) # for i in info.values(): #循环字典中的values
# print(i) # for i in info.keys():
# print(i,info[i]) # for i,v in info.items(): key 和 values 搜客循环出来
# print(i,v) # ###############字典中特有的功能######################## # 1、根据序列,创建字典,并指定元素
# v = dict.fromkeys(['k',123,'999'],123)#静态方法
# print(v) # 2、根据key获取值,key不存在时,可以指定默认值(None)
dic = {
"k1":"v1",
"k2":[]
}
# v = dic.get("k1",11111)
# print(v) # 3、删除并获取值
# v = dic.pop("k11111",90)
# print(dic,v)
# k,v = dic.popitem()#随机删除
# print(dic,k,v) # 4、设置值,已经存在不设置,获取当前key对应的值、
# 设置值,不存在设置,获取当前key对应的值
# v = dic.setdefault("k11","13")
# print(dic,v) # 5、 已经存在的覆盖key对应的值,不存在创建
# dic.update({'k1':11111,'k3':'alex'})
# dic.update(k1=123,k3=235,k5="asdf") # print(dic)
dict
7、重点总结
# 一、数字
# int(..)
# 二、字符串
# replace/find/join/strip/startswith/split/upper/lower/format
# tempalte = "i am {name}, age : {age}"
# # v = tempalte.format(name='alex',age=19)
# v = tempalte.format(**{"name": 'alex','age': 19})
# print(v)
# 三、列表
# append、extend、insert
# 索引、切片、循环
# 四、元组
# 忽略
# 索引、切片、循环 以及元素不能被修改
# 五、字典
# get/update/keys/values/items
# for,索引 # dic = {
# "k1": 'v1'
# } # v = "k1" in dic
# print(v) # v = "v1" in dic.values()
# print(v)
# 六、布尔值
# 0 1
# bool(...)
# None "" () [] {} 0 ==> False
其他
li = [11,22,33,44]
for item in li:
print item
li = [11,22,33]
for k,v in enumerate(li, 1):
print(k,v)
print range(1, 10)
# 结果:[1, 2, 3, 4, 5, 6, 7, 8, 9] print range(1, 10, 2)
# 结果:[1, 3, 5, 7, 9] print range(30, 0, -2)
# 结果:[30, 28, 26, 24, 22, 20, 18, 16, 14, 12, 10, 8, 6, 4, 2]
Python之路【第二篇】python基础 之基本数据类型的更多相关文章
- python之路第二篇(基础篇)
入门知识: 一.关于作用域: 对于变量的作用域,执行声明并在内存中存在,该变量就可以在下面的代码中使用. if 10 == 10: name = 'allen' print name 以下结论对吗? ...
- Python之路第二天,基础(2)-基本数据类型
一.Python数据类型 数 在Python中有4种类型的数,整数,长整数,浮点数和复数. 2是一个整数的例子 长整数不过是大一点的整数 3.23和52.3E是浮点数的例子.E标记表示10的幂.52. ...
- Python之路(第二篇):Python基本数据类型字符串(一)
一.基础 1.编码 UTF-8:中文占3个字节 GBK:中文占2个字节 Unicode.UTF-8.GBK三者关系 ascii码是只能表示英文字符,用8个字节表示英文,unicode是统一码,世界通用 ...
- Python成长之路第二篇(1)_数据类型内置函数用法
数据类型内置函数用法int 关于内置方法是非常的多这里呢做了一下总结 (1)__abs__(...)返回x的绝对值 #返回x的绝对值!!!都是双下划线 x.__abs__() <==> a ...
- Python之路(第九篇)Python文件操作
一.文件的操作 文件句柄 = open('文件路径+文件名', '模式') 例子 f = open("test.txt","r",encoding = “utf ...
- Python开发【第二篇】:初识Python
Python开发[第二篇]:初识Python Python简介 Python前世今生 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏 ...
- 第二篇 python进阶
目录 第二篇 python进阶 一 数字类型内置方法 二 字符串类型内置方法 三 列表类型内置方法(list) 四 元组类型内置方法(tuple) 五 字典内置方法 六 集合类型内置方法(self) ...
- [转帖]虚拟内存探究 -- 第二篇:Python 字节
虚拟内存探究 -- 第二篇:Python 字节 http://blog.coderhuo.tech/2017/10/15/Virtual_Memory_python_bytes/ 是真看不懂哦 ...
- 前端第二篇---前端基础之CSS
前端第二篇---前端基础之CSS 目录 一.css介绍 二.css语法 三.css的几种引入方式 四.css选择器 五.css属性相关 六.盒子模型 拓展 一.css介绍 CSS(Cascading ...
- 我的Python成长之路---第二天---Python基础(7)---2016年1月9日(晴)
再说字符串 一.字符串的编码 字符串的编码是个很令人头疼的问题,由于计算机是美国人发明的,他们很理所当然的认为计算机只要能处理127个字母和一些符号就够用了,所以规定了一个字符占用8个比特(bit)也 ...
随机推荐
- 备份了我的CSDN博客
刚用cnblogs的“博客搬家”功能把我此前在csdn发的所有文章都备份过来了. 发现cnblogs的博客备份功能比较好的一点是——文章的发表时间和原来的一致! 上次在CSDN发博客的时间是2015- ...
- uiautomator-----UiWatcher监听器
一.UiWatcher类说明 1.Uiwatcher用于处理脚本执行过程中遇到非预想的步骤 2.UiWatcher使用场景 1)测试过程中来了一个电话 2)测试过程中来了一条短信 3)测试过程中闹钟响 ...
- 「C++11」Lambda 表达式
维基百科上面对于 lambda 的引入是如下描述的: 在标准 C++,特别是当使用 C++ 标准程序库算法函数诸如 sort 和 find.用户经常希望能够在算法函数调用的附近定义一个临时的述部函数( ...
- getAttribute、setAttribute、removeAttribute
1.函数语法 elementNode.attributes:属性返回包含被选节点属性的 NamedNodeMap. elementNode.getAttribute(name):方法通过名称获取属性的 ...
- swift项目导入OC框架
手动导入框架步骤: 1.将框架拖入项目 2.新建桥接文件 3.build setting->bridge 添加桥接文件路径,相对项目而言
- 用flex做垂直居中
<div class="flex-cont flex-centerbox"> <div class="center-cont"> < ...
- centos安装tmux过程
原文:https://gist.github.com/rothgar/cecfbd74597cc35a6018 # Install tmux on Centos release 6.5 # insta ...
- retrofit使用随记
1.请求接口 public interface RetrofitApi { /*注册*/ /*登录*/ @FormUrlEncoded //post请求带这个 @POST("url" ...
- Redsi和Memcached区别总结
首先谈谈Redis和Memcached它们都是缓存在内存中的,唯一的区别就是Redis它本身会周期性的把 更新的一些数据写入到磁盘或者修改操作写入追加的记录文件中,并且在此基础上实现master-sl ...
- 10.Pattern 和 Matcher
Pattern:正则表达式的模式类 获取对象的函数Pattern pattern=Pattern.compiler(regex); 功能函数: 1.pattern.split(String targe ...