1、常用数据类型及内置方法

1.列表(list)

定义:在中括号[]内存放任意多个值,用逗号隔开.

具体函数和内置方法如下:

#定义学生列表,可存放多个学生
students=['a','b','c','d']
print(students[1])
student_info=['e',18,'mele',['喝酒','泡吧']]
print(student_info[3])
print(student_info[3][1]) #2 切片(顾头不顾尾,步长)
print(student_info[0:4:2])
#3 长度
print(len(student_info))
#4 成员运算
print('e' in student_info)
print('e' not in student_info)
#5 追加
student_info=['e',18,'mele',['喝酒','泡吧']]
student_info.append('合肥学院')
#6 删除
del student_info[2]
print(student_info)
#7 index获取某个值的索引
student_info_1=['h',17,'femele','尬舞','喊麦','']
print(student_info_1.index(17))
#8 获取某个值的数量
print(student_info_1.count(17))
#9 pop取值 默认取列表中最后一个值 有索引就取索引的值
student_info_1.pop()
print(student_info_1)
#
sex=student_info_1.pop(2)
print(sex)
print(student_info_1) #10 remove
student_info_1=['h',17,'femele','尬舞','喊麦','']
student_info_1.remove(17)#从左到右删除第一个遇到的值
print(student_info_1)
name=student_info_1.remove('h')
print(name)
print(student_info_1)
#11 insert 插入
student_info_1.insert(3,'合肥学院')
print(student_info_1)
#12 extend 合并列表
student_info_a=['h',17,'femele','尬舞1','喊麦2','']
student_info_b=['g',17,'femele','尬舞1','喊麦2','']
student_info_a.extend(student_info_b)
print(student_info_a)
#13 循环
for student in student_info_1:
print(student)

2.元组(tuple)

定义:在中括号()内存放任意多个值,用逗号隔开.

注意:元组与列表不一样的是,只能在定义的时候初始化,不能对其进行修改.

优点:在内存中占用的资源比列表要小.

#tuple元组
tuple1=(1,2,3,'四','five')
print(tuple1)
#1 按索引取值
print(tuple1[2])#取第三个值
#2 切片(顾头不顾尾,步长)
print(tuple1[0:5:2])
#3 长度
print(len(tuple1))
#4 成员运算
print(1 in tuple1)
print(1 not in tuple1)
#5 循环
for line in tuple1:
print(line)
print(line,end='')

3.可变和不可变类型

''''
#不可变类型
数字类型
int
float
字符串类型
str
元组
tuple
#可变类型
列表list
字典dict
集合可变和不可变都有'''
number=100
print(id(number))
number=111
print(id(number))
print() sal=100.1
print(id(sal))
sal=111.1
print(id(sal))
print() str1='hello python'
print(id(str1))
str2=str1.replace('hello','like')
print(id(str2))
#可变类型 #list1与list2指向同一个内存地址
list1=[1,2,3]
list2=list1
list1.append(4)
print(id(list1))
print(id(list2))

4.字典(dict)

定义:在{}内,可存放多个值,以key-value存取,取值速度快,key是不可变,value可变

#字典dict
dict1=({'age':18,'name':'peke'})
print(dict1)
print(type(dict1))
#取值 字典名+[] 括号内是对应的值
print(dict1['age'])
#2 存储一个level:9到字典中
dict1['level']=9
print(dict1) #3 len
print(len(dict1)) #
print('name'in dict1)#值判断key
print('peke'not in dict1) #5 删除
del dict1['level']
print(dict1) #6 key value items
print(dict1.keys())
print(dict1.values())
print(dict1.items()) #7 循环
for key in dict1:
print(key)
print(dict1[key]) #8 get
print(dict1.get('age'))
''''''
#print(dict1['sex'])#KeyError: 'sex' cant find
dict1=({'age':18,'name':'peke'})
print(dict1.get('sex')) dict2=(dict1.get('sex','mele'))
print(dict2)

2、文件处理

#文件处理
'''
写文件
wt
读文件
rt
追加写文件
at
#指定字符编码 以什么方式写就得以什么方式打开
执行代码的过程
1 先启动python解释器
2 把写好的python文件加载到解释器中
3 检测python的语法 执行代码
'''
#参数1 文件的绝对路径
#参数2 操作文件的模式
f=open('file.txt',mode='wt',encoding='utf-8')
f.write('tank')
f.close()#关闭操作系统文件资源 #2 读文本文件
f=open('file.txt','r',encoding='utf-8')
print(f.read())
f.close() #3 追加
f=open('file.txt','a',encoding='utf-8')
f.write('\n 合肥学院')
f.close()
#参数1 文件的绝对路径
#参数2 操作文件的模式
f=open('file.txt',mode='wt',encoding='utf-8')
f.write('tank')
f.close()#关闭操作系统文件资源 #2 读文本文件
f=open('file.txt','r',encoding='utf-8')
print(f.read())
f.close() #3 追加
f=open('file.txt','a',encoding='utf-8')
f.write('\n 合肥学院')
f.close()

3、函数

#函数
#1 解决代码冗余的问题
#2 使代码结构更清晰
#3 方便管理
先定义后调用
def 函数名(参数1,参数2,.....):
逻辑代码
返回值(可有可无) 函数定义的三种方式
1 无参函数
2 有餐函数
3 空函数 pass
#
def login(): user=input('请输入用户名').strip()
pwd=input('请输入密码').strip()
if user=="cheng" and pwd=="":
print("login successful")
else:
print("login error")
print(login)
login()#调用 #
def login(username,password):
if username== "cheng" and password == "":
print("login successful")
else:
print("login error")
login('cheng','') # '''
ATM
1:提现
2:...
...
....
..
.. '''
def register():
pass #在定义阶段x,y为形参 #在调用阶段x,y为实参
#关键数参数
def func(x,y):
print(x,y)
func(x=100,y=10)
#传参数的时候不能多传也不能少传 #默认参数
'''
在定义阶段,为参数设置默认值 '''
def foo(x=10,y=10):
print(x,y) foo()
foo(11,22) '''
函数的嵌套定义
函数的对象
函数的名称空间 在python中顶格写的全部称为全局名称空间
在函数内部定义的为局部名称空间
python解释器自带的都称为内置名称空间
加载顺序
内置—>全局—>局部
查找顺序
局部->全局—>内置 '''
# 1 在函数内部定义函数
def func1():
print('from func1')
def func2():
print('form func2')
# 2 函数对象
def f1():
pass
def f2():
pass
dic1={'':f1,'':f2} ch =input("请选择功能")
if ch=='':
print(dic1[ch])
dic1[ch]()
elif ch=='':
print(dic1[ch])
dic1[ch]() # 3 函数的名称空间
x=10
def func1():
print('from func1...')
x=20
print(x)
def func2():
print('form func2...')

三、总结

今天是python从零开始学习的第二天(day2),昨天把python的数据类型中的字符串学了,今天则把列表,字典,元组数据类型进行学习,然后又复习了文件操作和函数基本操作,其他有诸如with来处理上下文,省略了文件操作中的close()函数,和函数的命名空间的区别。

python学习(day2)的更多相关文章

  1. Python学习-day2

    这周时间充裕,把第一周的两个作业登陆验证和三级菜单做完后又用零零散散的时间看完了第二周的课程,不得不说老男孩这个教育方式感觉还是不错的,其实说白了就是花钱找个人监督自己学习呗,而且还强行让我们养成一些 ...

  2. python学习day2

    一.模块初识 python模块 模块让你能够有逻辑地组织你的Python代码段. 把相关的代码分配到一个 模块里能让你的代码更好用,更易懂. 模块也是Python对象,具有随机的名字属性用来绑定或引用 ...

  3. python学习day2(二)

    1.类与对象的关系 对于Python,一切事物都是对象,对象基于类创建 type是获取类的 dir是获取这个类里面的成员 2.int内部功能介绍 bit_length:返回表示当前数字占用的最少位数: ...

  4. python学习day2(一)

    一.上周作业回顾 1.登陆接口: 思路流程: 1.登陆,三次锁定用户 2.用户信息文件,黑名单文件 3.检测黑名单,如输入账号在黑名单中存在,不允许登陆 4.用户密码判断 主要知识点:while,fo ...

  5. python学习Day2 python 、pycharm安装及环境变量配置

    复习 进制转换:二进制&十六进制转换(从左往右1248机制,每四位二进制对应一位16进制) 二进制&十进制转换   2n-1幂次方相加 十进制到二进制转化  将十进制除以2,把余数记下 ...

  6. python学习 day2 (3月2日)

    .if if else 和 if elif else 的区别是: 前者 判断第一个 判断完第二个 之后还会执行else: 后者是只有满足条件(即都不符合if.elif里的条件时才会进入else) 不清 ...

  7. Python学习Day2笔记(字符编码和函数)

    1.字符编码 #ASCII码里只能存英文和特殊字符 不能存中文 存英文占1个字节 8位#中文编码为GBK 操作系统编码也为GBK#为了统一存储中文和英文和其他语言文字出现了万国码Unicode 所有一 ...

  8. Python学习Day2笔记(集合和文件操作)

    1.集合的使用 列表是有序的可包含重复内容的 集合是无序的不可包含重复内容的 1) 集合关系测试 #列表去重list_1=[1,4,5,6,7,8,9,7,5,4,23,2] #有重复数据 list_ ...

  9. Python学习day2 while循环&格式化输出&运算符

    day2 运算符-while循环 1.while循环 while循环基本结构; while 条件:      结果    # 如果条件为真,那么循环则执行    # 如果条件为假,那么循环不执行 de ...

  10. Python学习日记 --day2

    Python学习日记 --day2 1.格式化输出:% s d  (%为占位符 s为字符串类型 d为数字类型) name = input('请输入姓名') age = int(input('请输入年龄 ...

随机推荐

  1. (转)Java中JSON字符串与java对象的互换实例详解

    在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML.JSON等,JSON作为一个轻量级的数据格式比xml效率要高,XML需要很多的标签,这无疑占据了网络流量,JSON在这方面则做的很好, ...

  2. SRM691 Sunnygraphs2

    Problem Statement Hero has just constructed a very specific graph. He started with n isolated vertic ...

  3. webstorm使用帮助(转自http://my.oschina.net/longteng2013/blog/138010),另外有部分内容摘自其它人博客

    为了更高效的开发代码,这里列出了一些webstorm的快捷键和zencoding 发表于1 年 前(2013-06-17 00:19)   阅读(2101) | 评论(2) 11人收藏此文章, 我要收 ...

  4. 【转】Android性能优化之GPU过度绘制与图形渲染优化

    标签: android / 优化 / 过度绘制 / 图形渲染优化 Android之GPU过度绘制与图形渲染优化 写在前面的话 本文主要对过度绘制和图形渲染做一个概念性的描述,和简单的优化措施. 如果你 ...

  5. bzoj 4568: [Scoi2016]幸运数字【树链剖分+线段树+线性基】

    一眼做法,好处是好想好写坏处是常数大,容易被卡(bzoj loj 洛谷开O2 能AC,不开有90分-- 大概就是树剖之后维护线段树,在线段树的每个节点上上维护一个线性基,暴力\( 60^2 \)的合并 ...

  6. git上拉取tag,识别最新tag在此版本上新增tag

    通过shell 脚本自动获取最新tag,并输入最新版本后,推到git上 # 拉取分支上现有的tags git fetch --tags echo -e "所有tag列表" git ...

  7. python之定时器Timer

    timer类 Timer(定时器)是Thread的派生类,用于在指定时间后调用一个方法. 构造方法: Timer(interval, function, args=[], kwargs={})  in ...

  8. Java-String 类的常用方法

    Java 中 String 类的常用方法 Ⅰ String 类提供了许多用来处理字符串的方法,例如,获取字符串长度.对字符串进行截取.将字符串转换为大写或小写.字符串分割等,下面我们就来领略它的强大之 ...

  9. CMake学习笔记四:usb_cam的CMakeLists解析

    最近在学习cmake,在完整看了<cmake实践>一书后,跟着书上例程敲了跑了一遍,也写了几篇相关读书笔记,算是勉强基本入门了.所以找了usb_cam软件包的CMakeLists.txt来 ...

  10. 暴力 ZOJ 1403 Safecracker

    题目传送门 /* 暴力:纯暴力,在家水水 */ #include <cstdio> #include <cstring> #include <algorithm> ...