Python day 04
Day 04
今日内容
补充
1.解释器/编译器
补充:编译型语言和解释型语言?
# 编译型:代码写完后,编译器将其变成成另外一个文件,然后交给计算机执行。 # 解释型:写完代码交给解释器,解释器会从上到下一行行代码执行:边解释边执行。 【实时翻译】
2.字符串
.startswith() / .endswith()
name = 'glacier' # 判断是否已al开头 # 方式一: flag = name.startswith('gl') print(flag) # 方式二: val = name[0:2] if val == 'gl': print('是以gl开头') else: print('不是')
.format()
- 字符串格式化
name = "我叫{0},年龄:{1}".format('老男孩',73) print(name)
.encode()
- 修改编码类型
name = '李杰' # 解释器读取到内存后,按照unicode编码存储:8个字节。 v1 = name.encode('utf-8') print(v1) v2 = name.encode('gbk') print(v2)
.join()
name = 'glacier' # g_l_a_c_i_e_r result = "**".join(name) # 循环每个元素,并在元素和元素之间加入连接符。 print(result)
3.步长
name = 'glacier'
# val = name[0:-1:2]
# val = name[1:-1:2]
# val = name[1::2]
# val = name[::2]
# val = name[-1:0:-2]
# print(val)
# 笔试题:请将字符串反转。
val = name[::-1]
print(val)
4.for···in···:循环
name = 'glacier'
for item in name:
print(item)
'''
g
l
a
c
i
e
r
'''
# 练习题
# 1. for循环打印 “glacier” 的每个元素: for > while
# 2. 请打印: 1 - 10
for i in range(1,11): # [1,2,3,4,5,6,7,8,9,10]
print(i)
# 3. 请打印: 1 2 3 4 5 6 8 9 10
for i in range(1,11):
if i == 7:
pass
else:
print(i)
#注意:for和while的应用场景:有穷尽优先使用for,无穷尽用while
内容详细
1.列表
如果想要表示两个人 users = '麻花藤,码云'
以后想要表示更多'事物',可以使用列表
他是以[]括起来,每个元素以逗号隔开,而且他里面可以存放各种数据类型。
users = ['麻花藤','码云']
公共功能
len
users = ['麻花藤','码云'] val = len(users) print(val) # 2
索引
users = ['麻花藤','码云'] val = users[0] print(val)
切片
users = ['麻花藤','码云'] val = users[0:1]
删除(数字/布尔/字符串除外)
users = ['麻花藤','码云'] # 方式一 users.pop(1) print(users) # 方式二: del users[1] print(users) #注意: #字符串本身不能修改或删除【不可变类型】 v1 = "glacier".upper() #列表是可变类型。
修改(字符串/数字/布尔除外)
users = ['麻花藤','码云'] users[0] = 66 users[1] = '王鸿祎' users[1][1] = '周'
步长
users = ['麻花藤','码云','周弘医','glacier'] val = users[1::2]
练习题
""" 实现一个整数加法计算器(两个数相加): 如:content = input("请输入内容:") 用户输入:5+9或5+ 9或5 + 9(含空白),然后进行分割转换最 终进行整数的计算得到结果。 """ # 思路一: content = input('请输入:') # [5+9] 或 [5 +9] 或者 [ 5 + 9 ] content = content.strip() # [5+9] 或 [5 +9] 或者 [5 + 9] v1 = int(content[0]) v2 = int(content[-1]) v3 = v1 + v2 # 思路二: content = input('请输入:') # [5+9] 或 [5 +9] 或者 [ 5 + 9 ] content_len = len(content) index = 0 total = 0 while True: char = content[index] if char.isdigit(): total += int(char) index += 1 if index == content_len: break print(total) # 思路三: content = input('请输入:') # [5+9] 或 [5 +9] 或者 [ 5 + 9 ] result = content.split('+') # print(result) # ['55 ', ' 99 '] v1 = int(result[0]) # "55" v2 = int(result[1]) # " 99 " v3 = v1 + v2 print(v3)
for···in···:循环
# 方法一 users = ['麻花藤','码云','周弘医','glacier'] for i in users: print(i) # 方法二 (for嵌套) users = ['麻花藤','码云','周弘医','glacier'] for i in users: # 第一次循环:i='麻花藤' print(i) for ele in i: print(ele) # 练习题:请通过for循环和数字计数器实现:users = ['麻花藤','码云','周弘医','glacier'] """ 0 麻花藤 1 码云 2 周弘医 3 glacier """ # 方式一 users = ['麻花藤','码云','周弘医','glacier'] count = 0 for i in users: print(count,i) count += 1 # 方式二 users = ['麻花藤','码云','周弘医','glacier'] users_len = len(users) # 4 for index in range(0,users_len): # [0,1,2,3] print(index,users[index])
独立功能
.append()
- 在列表的最后追加一个元素
users = [] users.append('glacier') print(users)
# 示例一: users = [] while True: name = input('请输入姓名:') users.append(name) print(users) # 示例二: # 录入用户和密码 users = [] for i in range(0,3): name = input('请输入用户名和密码:') users.append(name) print(users) # ['mahuateng,123', 'mayun,888', 'glacier,123'] # 用户和密码校验 username = input('请输入要登陆用户名:') password = input('请输入要登陆密码:') for item in users: result = item.split(',') # ['glacier','123'] user = result[0] pwd = result[1] if user == username and pwd == password: print('登陆成功') break
.insert()
- 在列表中插入一个元素
users = ['麻花藤','码云','glacier'] users.insert(2,'周弘医') print(users)
.remove()
- 删除()内填写完整元素
users = ['麻花藤','码云','周弘医','glacier'] users.remove('麻花藤') print(users)
.pop()
- 删除()内填写元素下标,默认删除最后一个
users = ['麻花藤','码云','周弘医','glacier'] users.pop(0) print(users)
.clear()
- 清空列表
users = ['麻花藤','码云','周弘医','glacier'] users.clear() print(users)
总结
- 增
- append / insert
- 删
- remove / pop / clear / del users [0]
- 改
- users[0] = '新值'
- 查
- 索引/切片/步长
- 增
2.元组
书写规范
users = (11,22,33,"老男孩") # 元组(不可变) users = [11,22,33,"老男孩"] # 列表(可变)
支持的公共功能
- 索引/切片/步长
- for循环
- len
没有独立功能
特殊,元组中的元素(儿子)不可被修改/删除。
# 示例一: v1 = (11,22,33) v1[1] = 999 # 错误 v1 = 999 # 正确 # 示例二:可以嵌套 v1 = (11,22,33,(44,55,66),(11,2,(99,88,),3)) # 示例三:嵌套 v2 = [11,22,33,(11,22,33)] v2[-1][1] = 99 # 错误 v2[-1] = 123 # 正确 # 示例四:嵌套 v3 = (11,[1,2,3],22,33) v3[1] = 666 # 错误 v3[1][2] = 123 # 正确
总结
公共功能
- 索引(排除:int/bool)
- 切片(排除:int/bool)
- 步长(排除:int/bool)
- 删除(排除:tuple/str/int/bool)
- 修改(排除:tuple/str/int/bool)
- for循环(排除:int/bool)
- len(排除:int/bool)
Python day 04的更多相关文章
- Python学习--04条件控制与循环结构
Python学习--04条件控制与循环结构 条件控制 在Python程序中,用if语句实现条件控制. 语法格式: if <条件判断1>: <执行1> elif <条件判断 ...
- The Python Challenge 0-4
The Python Challenge 0-4 项目地址:http://www.pythonchallenge.com/ Level-0 提示Hint: try to change the URL ...
- python进阶04 装饰器、描述器、常用内置装饰器
python进阶04 装饰器.描述器.常用内置装饰器 一.装饰器 作用:能够给现有的函数增加功能 如何给一个现有的函数增加执行计数的功能 首先用类来添加新功能 def fun(): #首先我们定义一个 ...
- Python模块04/包/logging日志
Python模块04/包/logging日志 目录 Python模块04/包/logging日志 内容大纲 1.包 2.logging日志 3.今日总结 内容大纲 1.包 2.logging日志 1. ...
- Python函数04/生成器/推导式/内置函数
Python函数04/生成器/推导式/内置函数 目录 Python函数04/生成器/推导式/内置函数 内容大纲 1.生成器 2.推导式 3.内置函数(一) 4.今日总结 5.今日练习 内容大纲 1.生 ...
- Python面向对象04 /封装、多态、鸭子类型、类的约束、super
Python面向对象04 /封装.多态.鸭子类型.类的约束.super 目录 Python面向对象04 /封装.多态.鸭子类型.类的约束.super 1. 封装 2. 多态 3. 鸭子类型 4. 类的 ...
- python学习04——列表的操作
笨办法学python第38节 如何创建列表在第32节,形式如下: 本节主要是讲对列表的操作,首先讲了 mystuff.append('hello') 的工作原理,我的理解是,首先Python找到mys ...
- a byte of python(摘04)
a byte of python 第十章 输入/输出 如何使程序和用户进行交互?(用 raw_input 和 print语句来完成) 对于输出,你也可以使用多种多样的 str(字符串)类.使用 rju ...
- Python深入04 闭包
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 闭包(closure)是函数式编程的重要的语法结构.函数式编程是一种编程范式 (而 ...
- Python进阶04 函数的参数对应
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 我们已经接触过函数(function)的参数(arguments)传递.当时我们根 ...
随机推荐
- JAVA RPC (六) 之thrift反序列化RPC消息体
我们来看一下服务端的简单实现,直接上thrift代码,很直观的来看一看thrift的server到底干了些什么 public boolean process(TProtocol in, TProtoc ...
- Autofac之类型关联
前面的学习一直使用的是直接注册类型并不是Autofac已经依赖注入的主要使用方式,最佳的依赖注入与Autofac的使用方式,都是要结合面向接口(抽象)编程的概念的.推崇的是依赖于抽象而不是具体 pub ...
- 安卓demo
https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/README-CN.md
- MySQL主从复制延迟的问题 #M1002#
MySQL主从复制延迟的问题 #M1002# https://mp.weixin.qq.com/s/NwFGER-qn2xQ5TnG-php1Q 更为糟糕的是,MySQL主从复制在大事务下的延迟.同样 ...
- ES6新特性-函数的简写(箭头函数)
通常函数的定义方法 var fn = function(...){ ...... } //例如: var add = function(a,b){ return a+b; } //或者: functi ...
- js中把ajax获取的数据转化成树状结构(并做成多级联动效果)
1.首先通过ajax获取数据,此处省略,直接贴出获取到的数据格式 var arr = [{ id: 1, name: "一级标题", pid: 0 }, { id: 2, name ...
- 2019.04.26 mongaodb
打开服务 mongod.exe --dbpath E:\Develop\mongodb_64\data\db 在安装和打开服务之前要建一个db 文件的存储位置 然后打开服务 打开服务之后 打开图 ...
- [INS-40724] No locally defined network interface matches the SCAN subnet.
环境如下 OS:AIX 7.1 DB:11.2.0.4 2节点RAC 报错信息 在安装11.2.0.4 RAC的时候报如下错误 INS-40724] No locally defined networ ...
- Android 崩溃优化
Android 两种崩溃 android崩溃分为Java崩溃和Nativie崩溃 java崩溃就是java代码中,出现未捕获的异常,导致程序异常退出 Native崩溃一般是因为在Native代码中访问 ...
- jq元素拖拽
<div id="a1"></div> js <script type="text/javascript"> $(funct ...