计算机中,一切皆为对象

世界万物,皆为对象,一切对象皆可分类

------------------------------------我是分割线------------------------------------

1.IDE集成开发环境(Integrated Development Enviroment)

VIM:经典的Linux下的文本编辑器

Emacs:Linux文本编辑器,相对于VIM更友好一点

Eclipse:Java IDE,支持python,c,c++

Visual  Studio:微软的IDE,支持python,c++,java,c#等

Notepad++

sublime:python开发的

pycharm:主要用于python开发的IDE

2.pycharm设置模板默认添加作者、时间、IDE等信息

(1). 打开Pycharm,选择 File > Settings(Ctrl + Alt + S)

(2). 找到"File and Code Templates", 右侧菜单选择"Python Script",对模板进行编辑

格式为: ${<variable_name>},如常用的:

${USER}   当前系统用户

${DATE}   当前系统日期

${TIME}   当前系统时间

${PRODUCT_NAME}   创建文件的IDE名称

3.格式化输出

常用的占位符:%s s是string的意思 %d d是digit的意思 %f f是float的意思

变量.isdigit()  判断是不是数字

exit('string')  退出程序

4.数据类型

可变类型:列表、字典

不可变类型:整型、字符串、元组

4.1 数字

int(整型):表示比较小的整数

long(长整型):表示比较大的整数

注:在python3中不区分int和long,在python2,java,c中是被严格区分的

float(浮点型):大部分情况下是指小数

complex(复数):a+bj

4.2 布尔值

True or False

4.3 字符串

字符串拼接如果用逗号或加号,不仅拼写麻烦,而且每使用一个加号都需要开辟一片新的内存,这使得运行效率降低,因此常用格式化输出(%)

4.4 列表List[ ]

列表:list1=['a','b','c','d','e'],这样就可以把一些元素变成有关联的了,对其操作有增删改查等list内置方法

增:insert(看可以插入任意位置)、append(只能默认插入最后一个位置) extend(list2)(将list2扩展到list1,对list2没有影响)

  list1.append('f')

  list1.insert(2,'f')

  list1.extend(list2)

删:remove(根据内容删除元素,括号里面的东西是一个整体,也就是说不能切片)、

  pop(根据索引删除元素,并且可以返回所删除的内容)、

  del(不是list内置方法,适用于删除其它如常量、字典等)

  list1.remove(list1[3])  #删除索引为3的元素

  pop1=list1.pop(3)     #根据索引删除索引为3 的元素,并返回删除的元素给pop1;如果没有参数,则会删除列表最后一个元素

改:

  list1[2]='g'  #替换索引为2的元素 的值

  list1[1;3]=[‘h’,'i']  #替换索引为1,2的元素的值

查:顾头不顾尾(学会切片,即取出列表的子列表)

  list1[0:]   #取到最后一个元素

  list1[0:-1]  #取到倒数第二个值

  list1[0: :2]  #以步长为2依次从左到右取值

  list1[4::-2]  #以步长为2依次从右到左取值

  list1.count('a')  #统计元素a的个数

  list1.index('b')  #取出元素‘b’的索引,如果有多个,只会返回第一个‘b’的索引

(如果一定要得到其它几个‘b’的索引,在得到第一个‘b’的索引后,切片得到子列表,然后获得另一个‘b’在子列表中的索引,通过适当运算就得到在原列表里的索引)

排序

list1.reverse()  #将列表list1里面的元素反转

list1.sort()     #将列表中的元素排序(按照ASCII编码规则排序) ,默认的是list1.sort(reverse=False),还可以设置为list1.sort(reverse=True)

4.5元组Tuple()

注:(1)元组只读,不能修改(用途:如果你自己在编写程序的时候,有些数据不想让别人修改,就可以用元组)

  (2)元组在映射时可以当键使用,而列表不行

  (3)如果你的元组里面只有一个元素,最后在后面加一个逗号,此时在web中才认为它是一个元组

4.6 字典Dictionary{ }

键值对(key-value),键必须是不可变数据类型

定义字典的两种方法
info1= {
'stu1101': "TengLan Wu",
'stu1102': "LongZe Luola",
'stu1103': "XiaoZe Maliya",
}
info2=dict(([key,value],[key,value])) (不常用)

info3=dict([[key,value],[key,value]]) (不常用)
 
  • dict是无序的
  • key必须是唯一的,so 天生去重

增:

  info1[key]=value

  info1.setdefault(key,value)  #如果键存在,不改动,返回键相对应的值;如果键不存在,增加新的键值对,并返回对应的值

删:

  del info1[key]       #删除键值对

  del info1      #删除整个字典

  info1.clear()   #清空字典

  info1.pop(key)  #删除键值对,返回key对应的value

  info1.popitem()   #随机删除一个键值对,并以元组返回键值对

改:

  info1['stu1101']=new value  #通过键查找值

    info1.update(info2)  #将字典info2中的的键值对全部加入info1,如果有重复的key,info2会会覆盖info1的内容

查:

info1.keys()  #查看字典中所有的键,返回的不是列表,是一种新的数据类型dict_item,可以转换成列表供使用,list(info1.keys())

info1.values()  #查看字典中的值

info1.items()  #查看字典中所有的键值对

info1['stu1101']  #通过键查找值

其它操作及涉及到的方法

fromkeys  #可以初始化一个字典,但是基本上不用,因为在使用过程中会存在问题

       Info4.fromkeys([key1,key2,key3],value)  #value会赋值给key1,key2,key3

多级嵌套
sorted(字典)  #默认按照键值排序

字典遍历

效率高:for key in info1:

      print(key,info[key])

效率低:for i,j in info.items():

      print(i,j)  

(因为要把items的使用有一个列表转换的过程,所以比较慢)

4.7 字符串

print(字符串*20)  #重复输出20次

print(字符串[0:])  #通过切片的方式获得字符串中的字符,操作和列表一样

string1 in string2  #判断字符串1 是否在字符串2中

string1 + string2   #字符串拼接,占内存多,导致效率低,可以通过格式化输出或join方法

字符串st内置方法 功能
 c='-----'.join([a,b,c,d])  #join是字符串内置方法(所以引号里面只能是字符串),通过引号里面的字符串,将后面的a,b,c,d拼接在一起
 st.count('字符a')  #统计字符a的个数
 st.capitalize()  #首字母大写
 st.center(50,'-')  #居中打印:总共打印50个字符,st居中,其余的用‘-’填充
 st.ljust(50,‘*’)  #居左
 st.rjust(50,‘#’)  #居右
 st.encode()  
 st.endswith('字符串')  #判断字符串是否以某字符串为结尾
 st.startswith('字符串')    #判断字符串是否以某字符串为开头,在文件处理中经常处理到
 st.expandtabs(tabsize=10)    #扩展字符串中字符之间的空格,一般用不到

st.find('字符')

   #查找到st中第一个字符的位置,并返回该字符的索引值,默认从左往右

st.rfind('字符')

 #从右往左找第一个值(索引值是唯一的)
 st.format(name='venus')

 

  st='hello kitty {name},{age}'

  st.format(name='venus',age=27)  #以赋值的方式

  print(st)

 #格式化输出,此时的输出值是hello kitty venus,27

 st.format_map(name='venus')

  st='hello kitty {name},{age}'

  st.format_map({name:'venus',age:27})  #以键值对的方式

  print(st)

 #格式化输出,此时的输出值是hello kitty venus,27

 st.index('字符')    #和find的功能一样,所不同的是,找不到内容时会报错,而find会返回-1,也是没有找到的意思
 st.isalnum()  #判断字符串是不是由数字和字母组成的 ,一般用不到
 st.isdecimal()  #判断字符串是不是只包含十进制数,一般不用
 st.isdigit()  #判断字符串是不是只包含数字(整数)
 st.isnumeric()  #判断字符串是不是只包含数字(整数)
 st.isidentifier()  #判断非法变量的

st.islower()   st.isupper()

 #判断字符串是不是全都小写/大写

st.lower()   st.upper()

 #大写变小写、或小写变大写

st.swapcase()

 #大写变小写并且小写变大写

st.isspace()

 #判断字符串是否有空格

st.istitle()

 #判断单词的首字母是不是大写

st.strip()

 #帮我们去掉所有的空格和换行符,在文本处理中也是经常用到

st.lstrip()     st.rstrip()

 #去左去右空格和换行

st.replace('old内容',‘new内容’)

 #内容替换

st.split()

st.split(‘分割标志’)

 #把字符串变成列表,如果想要把列表变成字符串,可以用join

 #将字符串按照分割标志位进行分割(这个分割标志位来自字符串中)

split 是非常重要的字符串方法,它是join的逆方法,用来将字符串分割成序列

>>> '1+2+3+4+5'.split('+')
['1', '2', '3', '4', '5']
>>> 'usr/bin/env'.split('/')
['usr', 'bin', 'env']
>>> 'usr/bin/env'.split('/')
['usr', 'bin', 'env']
>>> '/usr/bin/env'.split('/')
['', 'usr', 'bin', 'env']
>>> 'using the default'.split()
['using', 'the', 'default']

如果不提供任何分隔符,程序会把所有空格作为分隔符

5.技巧之pycharm的Debug调试模式

6.作业----购物功能

  (1)向我展示购物车中的商品及属性

   (2)用户选择所要购买的商品,并显示你可以所拥有的资金,买完后所剩资金是多少

   (3)提示用户还需不需要购买其他商品,可用资金

6.1 enumerate函数的使用方法:遍历列表(可以返回两个变量或返回一个变量)

                          (enumerate是枚举的意思)

7.一些常用命令

len(list1)   #查看列表的长度

id(变量)  #查看变量的内存ID

Day4 Python基础之数据类型(三)的更多相关文章

  1. Python之路,Day4 - Python基础4 (new版)

    Python之路,Day4 - Python基础4 (new版)   本节内容 迭代器&生成器 装饰器 Json & pickle 数据序列化 软件目录结构规范 作业:ATM项目开发 ...

  2. Day4 - Python基础4 迭代器、装饰器、软件开发规范

    Python之路,Day4 - Python基础4 (new版)   本节内容 迭代器&生成器 装饰器 Json & pickle 数据序列化 软件目录结构规范 作业:ATM项目开发 ...

  3. Python基础之数据类型

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

  4. Python基础语法(三)

    Python基础语法(三) 1. 数值型数据结构 1.1 要点 在之前的博客也有提到,数值型数据结构在这里就不过多介绍了.在这里提及一些需要知道的知识点. int.float.complex.bool ...

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

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

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

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

  7. python基础篇(三)

    PYTHON基础篇(三) 装饰器 A:初识装饰器 B:装饰器的原则 C:装饰器语法糖 D:装饰带参数函数的装饰器 E:装饰器的固定模式 装饰器的进阶 A:装饰器的wraps方法 B:带参数的装饰器 C ...

  8. 第三篇:python基础之数据类型与变量

    阅读目录 一.变量 二.数据类型 2.1 什么是数据类型及数据类型分类 2.2 标准数据类型: 2.2.1 数字 2.2.1.1 整型: 2.2.1.2 长整型long: 2.2.1.3 布尔bool ...

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

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

随机推荐

  1. 自动获取svn的版本号

    需求 在做打包时,需要获取本地svn仓库的版本号,如下所示: 下面是我试过的几种做法 SubWCRev 使用SubWCRev.exe(TortoiseSVN自带的小工具),用法简单,但获取到的版本号有 ...

  2. 【RHEL7.0】软件包管理

    1.常用的RPM软件包命令 安装软件的命令格式  rpm –ivh filename.rpm 升级软件的命令格式  rpm –Uvh filename.rpm 卸载软件的命令格式  rpm –e fi ...

  3. LeetCode算法题-Valid Palindrome(Java实现)

    这是悦乐书的第174次更新,第176篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第33题(顺位题号是125).给定一个字符串,确定它是否是回文,只考虑字母数字字符并忽略 ...

  4. 【算法】LeetCode算法题-Two Sum

    程序 = 数据结构 + 算法. 算法是每一位程序员学习成长之路上无法避开的重要一环,并且越早接触越好.今后会每天做些算法题,至少每天做一道题目,同时会记录自己的解题思路和代码,通过[算法]专题来分享. ...

  5. March 07th, 2018 Week 10th Wednesday

    Better later than never. 亡羊补牢,时犹未晚. Time and again all of us are told to complete the tasks assigned ...

  6. JDBC复习2

    前面复习了一些基础知识以及如何抽取一些常用的代码,接下来就结合junit4做一个增删改查的小demo 重点是这么几个步骤:1.创建连接 2.编写sql语句 3.编写sql语句的载体 4.如果是Prep ...

  7. spring的工厂类

    主要介绍两种工厂接口BeanFactory(老版本,已过时)和ApplicationContext ApplicationContext接口:每次在加载applicationContext.xml的时 ...

  8. Grid布局指南

    简介 CSS网格布局(又称“网格”),是一种二维网格布局系统.CSS在处理网页布局方面一直做的不是很好.一开始我们用的是table(表格)布局,然后用float(浮动),position(定位)和in ...

  9. vue快速入门

    Vue.js是当下很火的一个JavaScript MVVM库,它是以数据驱动和组件化的思想构建的.相比于Angular.js,Vue.js提供了更加简洁.更易于理解的API,使得我们能够快速地上手并使 ...

  10. [matlab] 7.快速搜索随机树(RRT---Rapidly-exploring Random Trees) 路径规划

    RRT是一种多维空间中有效率的规划方法.它以一个初始点作为根节点,通过随机采样增加叶子节点的方式,生成一个随机扩展树,当随机树中的叶子节点包含了目标点或进入了目标区域,便可以在随机树中找到一条由从初始 ...