数值

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的更多相关文章

  1. Python第三天 序列 5种数据类型 数值 字符串 列表 元组 字典 各种数据类型的的xx重写xx表达式

    Python第三天 序列  5种数据类型  数值  字符串  列表  元组  字典 各种数据类型的的xx重写xx表达式 目录 Pycharm使用技巧(转载) Python第一天  安装  shell ...

  2. Python第三天 序列 数据类型 数值 字符串 列表 元组 字典

    Python第三天 序列  数据类型  数值  字符串  列表  元组  字典 数据类型数值字符串列表元组字典 序列序列:字符串.列表.元组序列的两个主要特点是索引操作符和切片操作符- 索引操作符让我 ...

  3. 《剑指offer》第二十题(表示数值的字符串)

    // 面试题20:表示数值的字符串 // 题目:请实现一个函数用来判断字符串是否表示数值(包括整数和小数).例如, // 字符串“+100”.“5e2”.“-123”.“3.1416”及“-1E-16 ...

  4. 04_Python的数据类型1数值和字符串_Python编程之路

    上一节我们通过一个helloworld程序学习python的一些简单操作,还有输入与输出 这节我们来讲Python的数据类型与变量的操作 Python的交互器 在讲这个之前,我要先讲一下python的 ...

  5. JS写法 数值与字符串的相互转换 取字符中的一部分显示 正则表达规则

    http://www.imooc.com/article/15885 正则表达规则 <script type="text/javascript"> </scrip ...

  6. Python的数据类型1数值和字符串

    Python的交互器 在讲这个之前,我要先讲一下python的交互器,之后讲解代码(除了做简单项目)都在交互器上进行,这样可能比较直接一些,有利于刚接触python的人理解代码 python在命令行自 ...

  7. 【剑指Offer】53、表示数值的字符串

      题目描述:   请实现一个函数用来判断字符串是否表示数值(包括整数和小数).例如,字符串"+100", "5e2", "-123",&q ...

  8. python字符串/列表/字典互相转换

    python字符串/列表/字典互相转换 目录 字符串与列表 字符串与字典 列表与字典 字符串与列表 字符串转列表 1.整体转换 str1 = 'hello world' print(str1.spli ...

  9. python字符串列表元组序列操作

    Table of Contents generated with DocToc python系列-字符串.列表.元组的操作 序列的访问及运算符 序列通用操作 访问单个元素 切片访问一部分元素 序列的复 ...

  10. C/C++ Qt StringListModel 字符串列表映射组件

    StringListModel 字符串列表映射组件,该组件用于处理字符串与列表框组件中数据的转换,通常该组件会配合ListView组件一起使用,例如将ListView组件与Model模型绑定,当Lis ...

随机推荐

  1. leetcode-158周赛-5222-分割字符串

    题目描述: 自己的提交: class Solution: def balancedStringSplit(self, s: str) -> int: if not s:return 0 res ...

  2. Batch - forfiles 命令详解

    forfiles 命令详解 C:\Users\cuixunxu>forfiles /? FORFILES [/P pathname] [/M searchmask] [/S] [/C comma ...

  3. JAVA大数——lightoj1024

    要用 System.gc() 清理内存 类必须命名成Main,一些大整数的操作 import java.math.BigInteger; import java.util.Scanner; publi ...

  4. NX二次开发-创建经典工具栏UF_UI_create_toolbar

    NX9+VS2012 1.打开D:\Program Files\Siemens\NX 9.0\UGII\menus\ug_main.men 找到装配和PMI,在中间加上一段 TOGGLE_BUTTON ...

  5. C/C++:Windows编程—调用DLL程序的2种方法(转载)

    文章为转载,原文出处https://blog.csdn.net/qq_29542611/article/details/86618902 前言先简单介绍下DLL.DLL:Dynamic Link Li ...

  6. LeetCode 183. Customers Who Never Order (从不订购的客户)

    题目标签: 题目给了我们 Customers 和 Orders 两个表格,让我们找到 从没订购过的客户. 首先从Orders 得到 订购过的CustomerId,然后再去Customers 里找 没有 ...

  7. (转)元类metaclass

    阅读目录 一 前言 二 什么是元类 三 class关键字创建类的流程分析 五 自定义元类控制类OldboyTeacher的创建 六 自定义元类控制类OldboyTeacher的调用 六 再看属性查找 ...

  8. ubuntu 12.04系统黑屏,登录界面黑屏

    ubuntu 12.04系统黑屏,登录界面黑屏 原文链接:http://www.2cto.com/os/201305/213737.html   1.硬件环境     Intel® Core™ i5- ...

  9. Codeforces 166B - Polygon (判断凸包位置关系)

    Codeforces Round #113 (Div. 2) 题目链接:Polygons You've got another geometrical task. You are given two ...

  10. js实现下拉框

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...