Python 1.1数字与字符基础
一、 基础数字操作
1.加减乘除以及内置函数: min(), max(), sum(), abs(), len()
math库: math.pi math.e, math.sin math.sqrt math.pow()
# -*- coding:UTF-8 -*-
import math, random
a, b = 1, 100 # 整形 integer
result = []
for i in range(20):
number = random.randint( a, b )
# 生成不同的分数
if number not in result:
result.append( number ) minimum = min(result) # result找到最小和最大分数
maximum = max(result)
result.remove(minimum) # 移除最大最小值
result.remove(maximum)
length = len(result)
num = sum(result)
average = num / length # 浮点型, float 求20个数的均值
year = math.pow(2, 11) - (2**5) + 3
print( average, type(average) ) # float
print( length, average, average % year, num / b, num // b ) # /为真除法 5/2=2.5 ;//为截断除法,5//2=2类似于C语言的除法
print( random.choice( [1, 2, 3, 4, 5] ), average + random.random() )
2.数字的不同进制表示和转换。 十进制 八进制 十六进制 二进制 int(), oct(), hex(), bin(),eval()
figs = [ 64, 0o11, 0x11, 0b11]
print(figs) # 输出十进制结果 [64, 9, 17, 3]
# eval -> input str transform into digit字符串转数字
print( 'eval: ', eval(''), eval('0b111'), eval('0x140') )
# int -> str turn to num on base基于进制进行字符串数字转换
print( 'int: ', int(''), int('', 8), int('', 16) )
格式化输出八、十六和二进制 '%o, %x, %b' % (64, 64, 64)
print( 'format printf 64-> ','{0:o}, {1:b}, {2:x}'.format(64, 64, 64) )
digit = int( input("input a digit:") )
print( "{} {} {} {} in different literal".format( digit, oct(digit), hex(digit), bin(digit) ) )
# b_len(x) == x.bit_length() 二进制位数
def b_len( num ):
return len( bin(num) ) - 2
print( 'bit length of num = %d' % ( b_len(figs[0])) )
3.小数decimal 和分数fraction
# temporary precision set
from decimal import Decimal
Deciaml.getcontext().prec = 4
precision dNum = Decimal('0.1') + Decimal('1.3') # decimal 小数
import decimal
with decimal.localcontext() as ctx:
ctx.prec = 2 #小数精度
dnum = deciaml.Decimal('2.123') / deciaml.Decimal('')
fraction 分数
from fraction import Fraction
a_frac = Fraction(1, 10) + Fraction(1, 10) - Fraction(2, 10)
a_frac = Fraction(1, 3) + Fraction( 5, 14)
print(a_frac) def singleNumber(nums):
""" find single number type
nums: List:[int]
retype: int
"""
numSet = set(nums)
for num in numSet:
if nums.count(num) == 1:
return num
else:
print("We can't found it!")
print( singleNumber([4,1,2,1,2]) )
二、 Python 基础字符
1. 字符串 " " and ' ' and """ """ 转义字符 \n \t \' \\ 原始字符串 raw_str-> r"\now" "\\n"
2. s = "hello world" -> s.find('hello') s.rstrip()移除空格 s.replace("me","you") s.split(',')分隔 s.index("world")
3. s.isdigit() s.isspace() s.islower s.endswith('spam') s.upper()
4. for x in s: print(x)迭代 'spam' in s [c for c in s] map( ord ,s )映射
# 新建字符对象,headline变量指向此对象
headline = "knight" + " glory " + "sword"
print("Meaning " "of" "programming")
index = headline.find("sword") # rfind 从左到右
# 字符串常量不可修改,为不可变类型
title = "SpaM" * 4
print("lens:", len(title) )
title = title.lower()
title = title.replace("m", 'rk ')
print(title) s1 = "your"
s2 = " name"
s = s1 + s2
print( s1 * 2, s1[1] ,s[:] , s[0:] ,s[::-1]) # 切片
# S.split(c) 使用符号c分割S字符串
line = "aaa bbb ccc 111"
cols = line.split(" ") # ['aaa', 'bbb', 'ccc', '111' ] # rstrip() 移除尾部空白
line = "The dawn before the day!\n"
if line.startswith("The") and line.endswith("day!\n"):
print( line.rstrip() ) # S.join(iterable) -> str 还原字符串,S字符串作为分隔符插入到各迭代字符串间
strList = list(s)
print(strList) # ['y', 'o', 'u', 'r', ' ', 'n', 'a', 'm', 'e']
s = "".join(strList) # ""作为分隔符,则连接单个字符
testStr = "spam".join(['egg', 'sausage', 'ham', 'sandwich'])
print(s, testStr)
字符串格式化方法
home = "this\' is our new home\n" # 格式化字符->"%s meets %s" % (s1, s2) "{0} and {1}".format(s1, s2)
hotspot = "%s have no idea how %s i was." % ( "you", "worried" )
hitbox = "That is %d %s bird!" % ( 1, 'dead' ) # 基于字典键值格式化
response = "%(n)d %(x)s" % {"n":100, "x":"start"} #字符串格式符引用字典键值
print( home , hotspot, hitbox, response) values = {'name':'David', "age":34}
reply = """
Greetings...
Hello %(name)s!
Your age roughly is %(age)s years old
"""
print( reply % values )
格式化方法调用 format
template = "{} {} and {}".format('green', 'red', 'purple' )
textline = "{name} wants to eat {food} \n".format( name="Bob", food="meat")
pi = 3.14159 # 类似C语言printf 格式输出 [06.2f]前补0 ,6字符宽度.2f浮点数输出小数点后2位
line = "\n{0:f} {1:.2f} {2:06.2f}\n".format( pi, pi , pi)
print( template, textline, line,'{0:X}, {1:o}, {2:b}'.format(255,255,255) ) test = random.choice( ['apple', 'pear', 'banana', 'orange'] )
test += str(123) # str(object)--> string
for animal in ["dog", "cat", "piglet"]:
print( "%s is a mammal" % animal )
字符转换chr、ord, int
alpha = []
c = 'a' # chr() ord()->trans char into int [ASCII]
for i in range(26):
alpha.append( chr( ord(c)+i ) )
print(alpha) binDigit = '' # equal to int( B, 2 )
B = binDigit[:]
I = 0
while B != '':
I = I * 2 + ( ord(B[0]) - ord('') )
B = B[1:]
print( "\'%s\' -> %d" % ( binDigit, I ) )
| 参考 《python学习手册》第4版
Python 1.1数字与字符基础的更多相关文章
- Python数字与字符之间的转换
Python数字与字符之间的转换 命令 意义 int(x [,base ]) 将x转换为一个整数 long(x [,base ]) 将x转换为一个长整数 float(x ) 将x转换到一个浮点数 co ...
- 利用 Python django 框架 输入汉字,数字,字符,等。。转成二维码!
利用 Python django 框架 输入汉字,数字,字符,等..转成二维码! 模块必备:Python环境 + pillow + qrcode 模块 核心代码import qrcode qr = ...
- python 数字转字符保留几位小数 by gisoracle
#数字转字符保留几位小数 by gisoracle #数字转字符保留几位小数 by gisoracle def floattostr(num,xsnum): if xsnum==0: return s ...
- Python : 熟悉又陌生的字符编码(转自Python 开发者)
Python : 熟悉又陌生的字符编码 字符编码是计算机编程中不可回避的问题,不管你用 Python2 还是 Python3,亦或是 C++, Java 等,我都觉得非常有必要厘清计算机中的字符编码概 ...
- Python学习系列(二)(基础知识)
Python基础语法 Python学习系列(一)(基础入门) 对于任何一门语言的学习,学语法是最枯燥无味的,但又不得不学,基础概念较繁琐,本文将不多涉及概念解释,用例子进行相关解析,适当与C语言对比, ...
- python学习之旅1-2(基础知识)
三,python基础初识. 1.运行python代码. 在d盘下创建一个t1.py文件内容是: print('hello world') 打开windows命令行输入cmd,确定后 写入代码pytho ...
- Python学习_02_数字和运算
python具有强大的科学运算功能,python由于支持更加强大的面向对象和动态特性,相比R语言.matlab.mathmatic等传统的科学计算工具具有非常大的优势. Python的数字 pytho ...
- python全栈开发-Day7 字符编码总结
python全栈开发-Day7 字符编码总结 一.字符编码总结 1.什么是字符编码 人类的字符--------->翻译--------->数字 翻译的过程遵循的标准即字符编码(就是一个字符 ...
- 【转】Python中的字符串与字符编码
[转]Python中的字符串与字符编码 本节内容: 前言 相关概念 Python中的默认编码 Python2与Python3中对字符串的支持 字符编码转换 一.前言 Python中的字符编码是个老生常 ...
随机推荐
- QT的QPropertyAnimation讲解
m_pAnimation->setEasingCurve(QEasingCurve::Linear); //直线风格 m_pAnimation->setLoopCount(-1); //无 ...
- JAVA读取HDFS信息
uri填路径 public static void main(String[] args) throws IOException { String uri = "/user/WeiboAD/ ...
- List 的 removeAll 方法的效率
List 的 removeAll 方法的效率低的原因: 要遍历source,对dest进行contain操作,而contain又要遍历dest进行equal比较. 解决办法:dest转为set,用se ...
- SkyWalking 为.NET Core
SkyWalking 为.NET Core https://www.cnblogs.com/liuhaoyang/p/skywalking-dotnet-v02-release.html Apache ...
- MATLAB入门学习(整合)
整合一下,都是链接地址: MATLAB入门学习(一):初次使用.. MATLAB入门学习(二):矩阵相关 MATLAB入门学习(三):矩阵常用函数 MATLAB入门学习(四):编写简单.m文件和函数文 ...
- jsp 页面显示格式化的日期
在页面引入 <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> 使用 ...
- DispatcherServlet类的分析
突然发现拿博客园来做笔记挺好的,不会弄丢.下面我把DispatcherServlet类的部分源代码复制到这里,然后阅读,把重要的地方翻译一下,该做笔记的地方做下笔记,蹩脚英语. =========== ...
- PAT-GPLT L3-017 森森快递(贪心 + 线段树)
链接: https://www.patest.cn/contests/gplt/L3-017 题意: 给出直线上的N个顶点,(N-1)条边的限制值(每对相邻的顶点之间都有一条边),以及Q个区间(给出起 ...
- CF13C Sequence
嘟嘟嘟 偶然看到的这道题,觉得有点意思,就做了. 首先题里说修改后的数列只能出现修改前的数,那么状态之间的转移也就之可能在这些数之间. 令f[i][j]表示第 i 个数改成原序列第 j 小的数时的最小 ...
- 关于接口返回BOM头处理的问题
今天用RestClient框架做接口请求.结果请求回来的json转模型失败.提示JSON格式不正确.到BeJson网站验证一下,发现果然不对. 后来得知是由于json信息带着bom头导致的,这个该死的 ...