三. Python基础(3)--语法
三. Python基础(3)--语法
1. 字符串格式化的知识补充
tpl = "我是%s,年龄%d,学习进度100%" %('Arroz',18) print(tpl) # 会提示:ValueError: incomplete format# 占位符只有格式化时才有意义
msg = "我是%s,年龄%d,学习进度100%" print(msg) # 结果:我是%s,年龄%d,学习进度100%
# 如果想要格式化输出字符串,同时又想要打印%,需要写两个% msg = "我是%s,年龄%d,学习进度100%%"%("Arroz",19) print(msg) ,学习进度100% |
# 字符串格式化的一种写法: tpl = "我是%s, 年龄%d, 学习进度100%%" % ('Arroz', 19) print(tpl) |
判断字符串是否为数值:isdecimal() |
2. 整数(int)类型
v1 = 15 print(v1.bit_length()) # 4 # 当十进制用二进制表示时,最少使用的位数(excluding the sign and leading zeros) # bit_length()不能用于字符串类型
# bit_length()可用于布尔类型 v2 = True print(v2.bit_length()) # 1,布尔类型实际上也是数值型
v3 = -37 print(bin(v3)) # -0b100101 print(v3.bit_length()) # 6
# 也可以写成(-37).bit_length() # 不能写成-37.bit_length() |
3. 布尔(bool)类型
整数0和空字符串""相当于False 非0 的整数/浮点数,和非空的字符串相当于True 也就是说while True相当于while "天天向上", while 7, while 4.5, while -4.5等 |
wihle 1的执行时间约为while True的2/3,为什么? 由于Python2中,True、False不是关键字,因此我们可以对其进行任意的赋值,这就导致程序在每次循环时都需要对True。False的值进行检查;而对于1,则被程序进行了优化,而不进行检查。 |
※ v = 0 or 6 print(v) v = 6 or 0 print(v) v = 2 or 1 print(v) v = 1 or 2 print(v) v = 9 or 2 > 3 print(v) v = 9 or 2 < 3 print(v) v = 2 > 3 or 9 print(v) v = 2 < 3 or 9 print(v) # "逻辑或"的运算原则是从左向右判断, 一旦判断出一个表达式为True, 那么整个逻辑运算的值就是这个表达式的值. 6 6 2 1 9 9 9 True print("=======") v = 0 and 6 print(v) v = 6 and 0 print(v) v = 2 and 1 print(v) v = 1 and 2 print(v) v = 9 and 2 > 3 print(v) v = 9 and 2 < 3 print(v) v = 2 > 3 and 9 print(v) v = 2 < 3 and 9 print(v) # "逻辑与"的运算原则是从左向右判断, 若有一个表达式为False, 那么整个表达式都为False(或者是代表False的对象), 若几个表达式都为真, 那么整个逻辑运算的值就是最后一个表达式的值. 0 0 1 2 False True False |
4. 字符串(str)类型
● 类提供的功能: ① upper() ② lower() ③ capitalize() ④ strip(); lstrip(); rstrip() ⑤ replace() ⑥ split() ※ |
● 公共功能: ①len() ②索引 indexing ③切片 slicing (切片都是"左闭右开"的区间) |
string = 'abcdefg' new_str = string[:4] + string[4]+ string[4:] print(string, new_str, sep = "→") # abcdefg→abcdeefg |
5. 列表(list)类型
● 类提供的功能: ①append() ②insert() |
● 公共功能: ① len() ② 索引(取, 改,删): [], =, del 特殊的: list[0:2] = ["Eric",] ③ 遍历: for |
注意下面的案例: |
v = ["Peter", "Paul", "Mary", "Harry", "Jerry"] # v[3] = "Leo" # ['Peter', 'Paul', 'Mary', 'Leo', 'Jerry'] # v[3] = ["Leo",] # ['Peter', 'Paul', 'Mary', ['Leo'], 'Jerry'] # v[3:4] = "Leo" # ['Peter', 'Paul', 'Mary', 'L', 'e', 'o', 'Jerry'] # v[3:4] = ["Leo",] # ['Peter', 'Paul', 'Mary', 'Leo', 'Jerry'] # v[3:5] = ["Leo",] # ['Peter', 'Paul', 'Mary', 'Leo'] # v[3:9] = ["Leo",] # ['Peter', 'Paul', 'Mary', 'Leo'] # 不会提示"list index out of range" # 如果列表只有一个元素,推荐加上一个逗号 # v[3:5] = "Leo" # ['Peter', 'Paul', 'Mary', 'L', 'e', 'o'] # v[3:9] = "Leo" # ['Peter', 'Paul', 'Mary', 'L', 'e', 'o'] # 不会提示"list index out of range" # print(v[7]) # 会提示"list index out of range" |
del v[3] del(v[3]) # 一般不这么用, 此时del仍然不是一个函数 v[3].del() # del是语句,不是list的方法 |
※ |
6. 元组(Tuple)类型
● 元素不可变(immutable)的容器(container), 但是它内部可以包含可变元素(如列表) |
● 类提供的功能: 无 |
● 公共功能: ① len() ② 索引(取) :[] ③ 遍历:for |
7. 字典(dict)类型
● 类提供功能 ①get() get()--如果不存在查询的键, 不报错, 返回关键字'None' v[键]--如果不存在查询的键, 报错 |
print(dict["k1"]) # v1 #print(dict["k3"]) print(dict.get("k1")) # v1 print(dict.get("k3")) # None |
● 字典元素的顺序: 字典元素的书写顺序不是它们实际的存储顺序, 字典将根据每个元素的Hashcode值进行排序. ※ 因为python字典的本质是一个Hash表hash表的数据结构注定它就是无序的。 |
● "键"的要求 1)一个键不允许出现两次。 2) 键必须不可变(也就是hashable),所以可以用数值, 字符串或元组充当键,列表就不行 |
● 公共功能: ①len() dict = { "k1" : "v1", "k2" : "v2" } print(len(dict)) #2 ②索引(取,改,删): =, del # del dict["k1"] # print(dict) # {'k2': 'v2'} ※
③循环 - for i in dict.keys() # dict_keys(['k1', 'k2']) - for i in dict.values() # dict_values(['v1', 'v2']) - for i in dict.items() # dict_items([('k1', 'v1'), ('k2', 'v2')])
for i in dict.keys(): print(i) # 等价于: for j in dict: print(j) |
# 注意, 字典没有切片, 因为字典是无序的. |
● 案例: 注意下面三种遍历"键-值"对的方法 |
v = { "k1":"v1", "k2":"v2" }
for i in v.items(): print(i)
for a,b in v.items(): print(a, b) for (a,b) in v.items(): print(a, b) |
('k1', 'v1') # 元组 ('k2', 'v2') k1 v1 k2 v2 k1 v1 k2 v2 |
● 案例 |
n = input("Your name:") a = input("Your age:") user_list = [{"name": "Peter","age": 18}, {"name": "Paul", "age": 19}, {"name": "Mary", "age": 20}]
temp ={"name": n, "age": int(a)} user_list.append(temp) for item in user_list: print(item["name"], item["age"]) #print(a, b for a, b in item.items()) |
Your name:Leo Your age:21 Peter 18 Paul 19 Mary 20 Leo 21 |
8. 强制转换(casting)
int() float() str() bool() |
知识补充
● 字面量, 变量
a = 11 注意区分作为字面量(literal)的"11",和作为变量的a,它们在计算机中存储是不一样的。 |
● 在Pycharm中查看文档
|
● 切片&步长
text = "洞庭湖位于长江中游荆江南岸" slice = text[1:20:2]# 即使这里的20 > len(text), 也不会提示越界 print(slice) print(text) # del text[1:15:2] # 报错, 'str' object does not support item deletion # print(text)
li = [11,22,33,44,55,66] del li[1:15:2] # 把奇数索引的元素删去 print(li) |
三. Python基础(3)--语法的更多相关文章
- 五. Python基础(5)--语法
五. Python基础(5)--语法 1 ● break结束的是它所在的循环体, continue是让它所在的循环体继续循环 # 打印: 1 10 2 10 3 10 4 10 5 10 6 10 7 ...
- 四. Python基础(4)--语法
四. Python基础(4)--语法 1 ● 比较几种实现循环的代码 i = 1 sum = 0 while i <= 10: # 循环10-1+1=10次 sum += i i ...
- 二. Python基础(2)--语法
二. Python基础(2)--语法 1.实现一个简单的登录系统 '''# 形式1 n = 1 while n < 4: name = input("请输入姓名\n" ...
- 一. Python基础(1)--语法
一. Python基础(1)--语法 1. 应用程序 1.1 什么是计算机(Computer)? 组成 ①运算器 arithmetic unit; ※ Arithmetic unit and cont ...
- 六. Python基础(6)--语法
六. Python基础(6)--语法 1 ● Python3中, Unicode转字节的方法 print(bytes("李泉", encoding = 'utf-8')) prin ...
- Python基础:语法基础(3)
本篇主要介绍Python中一些基础语法,其中包括:标识符.关键字.常量.变量.表达式.语句.注释.模块和包等内容. 1. 标识符和关键字 1.1 标识符 标识符是变量.常量.函数.属性.类.模块和包等 ...
- Python基础系列----语法、数据类型、变量、编码
1.基本语法 Python ...
- [Python基础]003.语法(2)
语法(2) 运算符 数学运算 比较运算 逻辑运算 位运算 赋值运算 其他运算 代码规范 代码缩进 多行 注释 流程控制 pass if while for break continue 运算符 数学运 ...
- [Python基础]002.语法(1)
语法(1) 变量 基本数据类型 空值 布尔值 数字 字符串 列表 元组 字典 结构嵌套 变量 定义变量 i = 10 这样就定义了一个名为 i 的变量,它的值是 10 . 变量名必须是大小写英文.数字 ...
随机推荐
- Linux chpasswd (批量或单一修改用户密码)和passwd(直接修改用户密码)
Linux命令:chpasswd 批量或者单一修改用户密码 语法: 1:# echo 用户名:密码 | chpasswd 2:# chpasswd < doiido.txt 实例 1.直接修改d ...
- [Spring] Annotation注释
自动扫描: 在<beans>标签内, <context:annotation-config />允许使用注解 <context:component-scan base-p ...
- 雷林鹏分享:jQuery EasyUI 树形菜单 - 树形菜单加载父/子节点
jQuery EasyUI 树形菜单 - 树形菜单加载父/子节点 通常表示一个树节点的方式就是在每一个节点存储一个 parentid. 这个也被称为邻接列表模型. 直接加载这些数据到树形菜单(Tree ...
- AngularJS参数绑定 --AngularJS
AngularJS参数绑定有三种方式.第一种插值表达式“{{}}”表示,第二种在标签中使用ng-bind属性表示,第三种针对input框(标签)的ng-module属性表示.针对三种参数绑定方式,设定 ...
- LeetCode--429--N叉树的层序遍历
问题描述: 给定一个N叉树,返回其节点值的层序遍历. (即从左到右,逐层遍历). 例如,给定一个 3叉树 : 返回其层序遍历: [ [1], [3,2,4], [5,6] ] 说明: 树的深度不会超过 ...
- Android开源框架源码分析:Okhttp
一 请求与响应流程 1.1 请求的封装 1.2 请求的发送 1.3 请求的调度 二 拦截器 2.1 RetryAndFollowUpInterceptor 2.2 BridgeInterceptor ...
- Prime Ring Problem HDU - 1016
A ring is compose of n circles as shown in diagram. Put natural number 1, 2, ..., n into each circle ...
- 电影《Green book》观后感_已补全:携带着种族歧视的“光环”,艰难地获得朋友的相互依赖,依然得享受生活的酸甜苦咸。
目录 1.电影基本情况介绍 2.故事整个发展经历 3.观影感受 4.网友评论 <Green book>--绿皮书 作者总共看这部影片三次,第一次英文版慢看,第二次中文版快看,第三次中文版总 ...
- 走起 ~私有gitlab
1.创建gitlab 账号,创建一个项目名称 地址:http://git.limikeji.com 2.配置git环境 用git命令上传代码 3.配置gitlab ssh 4.使用git命令上传代码 ...
- 『Python』setup.py简介
setup.py应用场合 网上见到其他人这样介绍: 假如我在本机开发一个程序,需要用到python的redis.mysql模块以及自己编写的redis_run.py模块.我怎么实现在服务器上去发布该系 ...