第二天:数值与字符串、列表list
数值
1、 声明变量
age = 20
f = 3.14 #浮点型
f = 0.3
f = .3
2、表达式
- 主要是做一些简单的加减乘除运算,直接出结果
1.1 + 2.2
2.2 + 3.0
3.14 * 2
5.0 / 2
3.3000000000000003
5.2
6.28
2.5
在上面的实例中,主要是要看到简单的‘1.1+2.2’在python中的输出结果并不像我们想象中的简单的3.3,而是一个有很长小数位数的'3.3000000000000003'。
3、显示(使用.format()来替换字符)
- eg:'{0:.2f}'.format(3.3333)
'{0}'.format(20)
'3 + 2 ={0}'.format(5)
f = 3.333
'f = {0}'.format(f)
'f={0:.2f}'.format(f)
d = {'name':'Tom', 'age':20, 'job':'dev'}
'姓名:{0},年龄:{1}'.format(d.get('name'), d.get('age'))
上面的代码输出如下:
'20'
'3 + 2 =5'
'f = 3.333'
'f=3.33'
'姓名:Tom,年龄:20'
在上面的实例中我们看到了.format()的强大之处,可以动态替换已有字符串中的字符,同时我们还可以通过在{0}中加入':.2f'来规定需要加入的数值型对象的数据类型与保留的小数点位数。
4、比较,返回布尔型结果:True, False
- 常用运算符 >, <, >=, <=, ==, !=
5、相除
10 / 4
10 // 4
10 // 4.0
输出如下:
2.5
2
2.0
上面的第一个是平时使用的正常除法,后面的是常见的“地板除”,也叫整除,得出的是商(不含余数)。
第三个除式是为了得到浮点型的结果。
6、取整的三个方法
- floor()、trunc()、round()
- floor()取整
import math
math.floor(3.4) # 取整的函数,直接截取整数
math.floor(3.9)
math.floor(-3.4)
math.floor(-3.9) # 假如把数值放在坐标轴上,那么floor是取数值左边的整数,往左移动坐标轴
3
3
-4
-4
- trunc()取整
math.trunc(3.14) # tuanc函数是往坐标轴0中间移动
math.trunc(3.94)
math.trunc(-3.14)
math.trunc(-3.94)
3
3
-3
-3
- round()取整
round(3.14) #常规意义上的四舍五入
round(3.94)
round(-3.14)
3
4
-3
-4
7、整型:无限精度,仅受限于内存与计算机精度
- 十六进制0o、八进制0x、二进制0b
- 八进制0o
0o3 # 0o开头表示八进制,但是八进制只能表示0-7
0o7
0o8 # 报错
3
7
- 十六进制0x
0x3 #十六进制
0x9
0xa
0xf
3
9
10
15
- 二进制0b
0b1 # 二进制
0b0
0b11
0b1011
1
0
3
11
- 转换进制的几个函数
oct(64) # 转换64进制的写法
hex(64) # 十六进制的写法
bin(64) # 二进制的写法
'0o100'
'0x40'
'0b1000000'
- 其他琐碎
math.pi # math里内置的一些函数
math.sqrt(144)
3.141592653589793
12.0
- 关于decimal
import decimal
decimal.Decimal('3.14')
decimal.Decimal('1.1')+decimal.Decimal('2.2') # 得到需要的精度
Decimal('3.14')
Decimal('3.3')
字符串
1、声明
- ''
- ""
- """##""" 说明性的文档
对于字符串中的引号处理问题可以参考一下方法
word = "What's your name?"
word
'what\'s your name?'
"What's your name?"
"what's your name?"
2、转义符
- 转义符
\
\'
\"
- 换行符 \n
- 退格键 \b
- 表格四个空格 \t
- 忽略转义符 r'...'
直接写明路径会有报错:
path = 'C:\abc\xyz.txt'
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 6-7: truncated \xXX escape
可以用下面的方法来转移“\”
path = 'C:\\abc\\xyz,txt'
path
'C:\\abc\\xyz,txt'
最好是用忽略转义符:
path = r'c:\abc\xyz.txt'
path
'c:\\abc\\xyz.txt'
可以使用"""##"""在代码中注释:
def avg():
"""计算平均分"""
pass
# 这是一行注释
3、基本操作
name = 'tom'
len(name)
'abc' + 'xyz'
'ok' * 5
print('-' * 30)
3
'abcxyz'
'okokokokok'
------------------------------
- 假如我想要逐字打印呢,可以这样:
s = 'hello'
for c in s:
print(c)
h
e
l
l
o
- 想要在逐字中间加点东西?:
for c in s:
print(c, end = ' ')
h e l l o
- 想要调用字符串中的某个字段:
s[0]
s = 'sfdsfsfsdf'
s[0:4] # 后面的数字坐标是不包括的,不会引用出来
'h'
'sfds'
- 调用最后一个字段的两个方法
s[-1]
s[len(s)-1]
'f'
'f'
- 花式调用:
s[:]
s[::2] # 以2作为间隔获取
h = 'hello'
h[::-1]
int('42')+1 # 使得字符串与数字相加
'sfdsfsfsdf'
'sdffd'
'olleh'
43
- 关于ASCII表
ord('c') # 查看ascii表里位置
chr(99) #查看相应位置对应的字符
chr(75)
99
'c'
'K'
- 使用replace()替换字符串的某个字段
h = 'hello'
h = h.replace('e', 'a')
h
'hallo'
4、布尔型
- True、False
type(True) # 区分大小写
type(3)
isinstance(True, int) # 这个函数是判断某个字符是否是某个类型
True == 1
False == 0
result = True + 3
result
bool
int
True
True
True
4
5、基本骚操作
- 通过列表作为中介来改变字符串中的某一个字段
- 先把字符串变成列表
s = 'sdhishd.com'
l = list(s)
l
['s', 'd', 'h', 'i', 's', 'h', 'd', '.', 'c', 'o', 'm']
- 替换列表中的字段
l[len(l)-1] = 'c' # 或者可以用 l[-1] = 'c'
l
['s', 'd', 'h', 'i', 's', 'h', 'd', '.', 'c', 'o', 'c']
- 再变成字符串
s = ''.join(l) #通过一个空的字符串
s
'sdhishd.coc'
s = '|'.join(l) #将字符串中的每一个字段都用符号隔开
s
url = 'sadfhsk.com,sdfjl.cc,sfhioho.com' # 使用逗号隔开字符串中的字段,前提是知道字符串中存在的分隔符
l = url.split(',')
l
's|d|h|i|s|h|d|.|c|o|c'
['sadfhsk.com', 'sdfjl.cc', 'sfhioho.com']
- len(l) # 这其实是一个函数,不依附于对象
- s.split() # 这是一个方法,是python在定义字符串类型时就设置好的方法。
url = 'sdfi.cc'
url.startswith('url') # 判断字符串的开头方法
url.endswith('cc') # 判断字符串结尾的方法
url.find('sdf') # 返回字段在字符串中的位置,返回寻找字段首字符位置
url.find('.')
False
True
True
0
4
- 关于赋值
a,b = 1,2
a
b
1
2
a,b = b,a #交换对象
a
b
2
1
- 交换过程的展示
'{0} = > {1}'.format(a, b) #交换的过程表示
'{} = > {}'.format(a, b) #也可以不写索引
'{name}=>{salary}'.format(salary = 9000.00,name = 'Tom' )
#可以不按顺序,但是要指定变量与对象
url.upper() #大写变量
'2 = > 1'
'2 = > 1'
'Tom=>9000.0'
'SDFI.CC'
列表
- 任意对象的有序集合
- 通过索引下标访问元素
- 可变长度
- 属于可变序列
- 常用操作:
len([3, 4, 5]) #求列表长度的时候,会计算列表中的对象数量
[1,2,3]+[3,4,5]
l = list('dfasihdi') #这里的list是个函数,要用小括号
l
'k' in l
3
[1, 2, 3, 3, 4, 5]
['d', 'f', 'a', 's', 'i', 'h', 'd', 'i']
False
for c in l:
print(c)
for c in l:
print(c,end = '|')
d
f
a
s
i
h
d
i
d|f|a|s|i|h|d|i|
- append()
l = [1,2,3,4,5,6]
res = []
for i in l:
res.append(i**2) #append方法就是扩展
res
l1 = [i**2 for i in l] # 外侧的中括号决定返回的是一个列表
l1
[1, 4, 9, 16, 25, 36]
[1, 4, 9, 16, 25, 36]
[c*3 for c in 'code']
l = [1,2,3]
l[1:2] = [4,5] #替换列表
l
['ccc', 'ooo', 'ddd', 'eee']
[1, 4, 5, 3]
- extend()
l.extend([9,8,5]) # 扩展一个列表,连接起来
l
[1, 4, 5, 3, 7, 9, 8, 5]
- 排序
l.sort() #正向排序
l
l.reverse() #反向排序
l
[1, 3, 4, 5]
[5, 4, 3, 1]
- 删除元素
l.pop() #删除最后一个元素
l
del(l[0])
l
[5, 4, 3]
[4,3]
l.index(5) #返回列表中元素的索引
l.count(5) #统计列表中元素5的个数
2
1
- 注意:引用类型,支持原位改变。拷贝副本,可以用:[:],.copy()
l1 = [1,2,3,4,5]
l2 = l1
l2
l1[1] = 9 #改变l1中的元素,然后l2中相应的元素也会改变的
l1
l2
[1, 2, 3, 4, 5]
[1, 9, 3, 4, 5]
[1, 9, 3, 4, 5] #l2也跟着改变了
避免改变的方法
l3 = l1[:] #第一种避免l3改变的方法
l3
l4 = l1.copy() #使用.copy()方法
l4
[1, 9, 3, 4, 5]
[1, 9, 3, 4, 5]
第二天:数值与字符串、列表list的更多相关文章
- Python第三天 序列 5种数据类型 数值 字符串 列表 元组 字典 各种数据类型的的xx重写xx表达式
Python第三天 序列 5种数据类型 数值 字符串 列表 元组 字典 各种数据类型的的xx重写xx表达式 目录 Pycharm使用技巧(转载) Python第一天 安装 shell ...
- Python第三天 序列 数据类型 数值 字符串 列表 元组 字典
Python第三天 序列 数据类型 数值 字符串 列表 元组 字典 数据类型数值字符串列表元组字典 序列序列:字符串.列表.元组序列的两个主要特点是索引操作符和切片操作符- 索引操作符让我 ...
- 《剑指offer》第二十题(表示数值的字符串)
// 面试题20:表示数值的字符串 // 题目:请实现一个函数用来判断字符串是否表示数值(包括整数和小数).例如, // 字符串“+100”.“5e2”.“-123”.“3.1416”及“-1E-16 ...
- 04_Python的数据类型1数值和字符串_Python编程之路
上一节我们通过一个helloworld程序学习python的一些简单操作,还有输入与输出 这节我们来讲Python的数据类型与变量的操作 Python的交互器 在讲这个之前,我要先讲一下python的 ...
- JS写法 数值与字符串的相互转换 取字符中的一部分显示 正则表达规则
http://www.imooc.com/article/15885 正则表达规则 <script type="text/javascript"> </scrip ...
- Python的数据类型1数值和字符串
Python的交互器 在讲这个之前,我要先讲一下python的交互器,之后讲解代码(除了做简单项目)都在交互器上进行,这样可能比较直接一些,有利于刚接触python的人理解代码 python在命令行自 ...
- 【剑指Offer】53、表示数值的字符串
题目描述: 请实现一个函数用来判断字符串是否表示数值(包括整数和小数).例如,字符串"+100", "5e2", "-123",&q ...
- python字符串/列表/字典互相转换
python字符串/列表/字典互相转换 目录 字符串与列表 字符串与字典 列表与字典 字符串与列表 字符串转列表 1.整体转换 str1 = 'hello world' print(str1.spli ...
- python字符串列表元组序列操作
Table of Contents generated with DocToc python系列-字符串.列表.元组的操作 序列的访问及运算符 序列通用操作 访问单个元素 切片访问一部分元素 序列的复 ...
- C/C++ Qt StringListModel 字符串列表映射组件
StringListModel 字符串列表映射组件,该组件用于处理字符串与列表框组件中数据的转换,通常该组件会配合ListView组件一起使用,例如将ListView组件与Model模型绑定,当Lis ...
随机推荐
- leetcode-158周赛-5222-分割字符串
题目描述: 自己的提交: class Solution: def balancedStringSplit(self, s: str) -> int: if not s:return 0 res ...
- Batch - forfiles 命令详解
forfiles 命令详解 C:\Users\cuixunxu>forfiles /? FORFILES [/P pathname] [/M searchmask] [/S] [/C comma ...
- JAVA大数——lightoj1024
要用 System.gc() 清理内存 类必须命名成Main,一些大整数的操作 import java.math.BigInteger; import java.util.Scanner; publi ...
- NX二次开发-创建经典工具栏UF_UI_create_toolbar
NX9+VS2012 1.打开D:\Program Files\Siemens\NX 9.0\UGII\menus\ug_main.men 找到装配和PMI,在中间加上一段 TOGGLE_BUTTON ...
- C/C++:Windows编程—调用DLL程序的2种方法(转载)
文章为转载,原文出处https://blog.csdn.net/qq_29542611/article/details/86618902 前言先简单介绍下DLL.DLL:Dynamic Link Li ...
- LeetCode 183. Customers Who Never Order (从不订购的客户)
题目标签: 题目给了我们 Customers 和 Orders 两个表格,让我们找到 从没订购过的客户. 首先从Orders 得到 订购过的CustomerId,然后再去Customers 里找 没有 ...
- (转)元类metaclass
阅读目录 一 前言 二 什么是元类 三 class关键字创建类的流程分析 五 自定义元类控制类OldboyTeacher的创建 六 自定义元类控制类OldboyTeacher的调用 六 再看属性查找 ...
- ubuntu 12.04系统黑屏,登录界面黑屏
ubuntu 12.04系统黑屏,登录界面黑屏 原文链接:http://www.2cto.com/os/201305/213737.html 1.硬件环境 Intel® Core™ i5- ...
- Codeforces 166B - Polygon (判断凸包位置关系)
Codeforces Round #113 (Div. 2) 题目链接:Polygons You've got another geometrical task. You are given two ...
- js实现下拉框
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...