python学习(day2)
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)的更多相关文章
- Python学习-day2
这周时间充裕,把第一周的两个作业登陆验证和三级菜单做完后又用零零散散的时间看完了第二周的课程,不得不说老男孩这个教育方式感觉还是不错的,其实说白了就是花钱找个人监督自己学习呗,而且还强行让我们养成一些 ...
- python学习day2
一.模块初识 python模块 模块让你能够有逻辑地组织你的Python代码段. 把相关的代码分配到一个 模块里能让你的代码更好用,更易懂. 模块也是Python对象,具有随机的名字属性用来绑定或引用 ...
- python学习day2(二)
1.类与对象的关系 对于Python,一切事物都是对象,对象基于类创建 type是获取类的 dir是获取这个类里面的成员 2.int内部功能介绍 bit_length:返回表示当前数字占用的最少位数: ...
- python学习day2(一)
一.上周作业回顾 1.登陆接口: 思路流程: 1.登陆,三次锁定用户 2.用户信息文件,黑名单文件 3.检测黑名单,如输入账号在黑名单中存在,不允许登陆 4.用户密码判断 主要知识点:while,fo ...
- python学习Day2 python 、pycharm安装及环境变量配置
复习 进制转换:二进制&十六进制转换(从左往右1248机制,每四位二进制对应一位16进制) 二进制&十进制转换 2n-1幂次方相加 十进制到二进制转化 将十进制除以2,把余数记下 ...
- python学习 day2 (3月2日)
.if if else 和 if elif else 的区别是: 前者 判断第一个 判断完第二个 之后还会执行else: 后者是只有满足条件(即都不符合if.elif里的条件时才会进入else) 不清 ...
- Python学习Day2笔记(字符编码和函数)
1.字符编码 #ASCII码里只能存英文和特殊字符 不能存中文 存英文占1个字节 8位#中文编码为GBK 操作系统编码也为GBK#为了统一存储中文和英文和其他语言文字出现了万国码Unicode 所有一 ...
- Python学习Day2笔记(集合和文件操作)
1.集合的使用 列表是有序的可包含重复内容的 集合是无序的不可包含重复内容的 1) 集合关系测试 #列表去重list_1=[1,4,5,6,7,8,9,7,5,4,23,2] #有重复数据 list_ ...
- Python学习day2 while循环&格式化输出&运算符
day2 运算符-while循环 1.while循环 while循环基本结构; while 条件: 结果 # 如果条件为真,那么循环则执行 # 如果条件为假,那么循环不执行 de ...
- Python学习日记 --day2
Python学习日记 --day2 1.格式化输出:% s d (%为占位符 s为字符串类型 d为数字类型) name = input('请输入姓名') age = int(input('请输入年龄 ...
随机推荐
- jquery中的工具函数 Utilities
noConflict(deep) 释放$和Jquery的控制权 isFunction(obj) isArray(obj) isWindow(obj) isNumeric(obj) type(obj) ...
- poj 2411((多米诺骨牌问题))
Mondriaan's Dream Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 12854 Accepted: 748 ...
- 小程序-demo:template
ylbtech-小程序-demo: 1.返回顶部 1.app.js 2.app.json 3.app.wxss 4.project.config.json 5.pages 6.images 7. 2. ...
- context:property-placeholder作用
原文地址:http://blog.sina.com.cn/s/blog_a0de59cf0101dqeb.html spring去加载,这个元素的写法如下: <context:property- ...
- 12_传智播客iOS视频教程_注释和函数的定义和调用
OC的注释和C语言的注释一模一样.它也分单行注释和多行注释. OC程序里面当然可以定义一个函数.并且定义的方式方法和调用的方式方法和我们C语言是一模一样的.OC有什么好学的?一样还学个什么呢? 重点是 ...
- 关于netty的简单实现
1. 新建两个maven项目, 分别为 netty-server: netty的服务端: 消息的消费者 netty-client: netty的客户端: 消息的生产者 2. 分别引入netty的mav ...
- 我的JSP中文编码解决方案
虽然以前就知道编码问题,但是一直没有遇到问题,以前用asp.net和php的时候,感觉很自然地写程序,没怎么特别处理编码问题,这回改用java写,真心被恶心到了. 进行了一番查阅学习后,终于搞明白了一 ...
- HDU 5514 Frogs (数论容斥)
题意:有n只青蛙,m个石头(围成圆圈).第i只青蛙每次只能条ai个石头,问最后所有青蛙跳过的石头的下标总和是多少? 析:首先可以知道的是第 i 只青蛙可以跳到 k * gcd(ai, m),然后我就计 ...
- bzoj 2783: [JLOI2012]树【树上差分】
注意是等于s不是大于s dfs,用set或者map存这条链到root的点权和sum[u],更新答案的时候查一下有没有s-sum[u]即可 #include<iostream> #inclu ...
- bzoj 2337 [HNOI2011]XOR和路径【高斯消元+dp】
首先,我们发现,因为是无向图,所以相连的点之间是有"依赖性"的,所以不能直接用dp求解. 因为是xor,所以按位处理,于是列线性方程组,设$ x[i] $为点i到n异或和为1的期望 ...