一、 基础数字操作

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数字与字符基础的更多相关文章

  1. Python数字与字符之间的转换

    Python数字与字符之间的转换 命令 意义 int(x [,base ]) 将x转换为一个整数 long(x [,base ]) 将x转换为一个长整数 float(x ) 将x转换到一个浮点数 co ...

  2. 利用 Python django 框架 输入汉字,数字,字符,等。。转成二维码!

    利用 Python django 框架 输入汉字,数字,字符,等..转成二维码! 模块必备:Python环境 + pillow  + qrcode 模块 核心代码import qrcode qr = ...

  3. python 数字转字符保留几位小数 by gisoracle

    #数字转字符保留几位小数 by gisoracle #数字转字符保留几位小数 by gisoracle def floattostr(num,xsnum): if xsnum==0: return s ...

  4. Python : 熟悉又陌生的字符编码(转自Python 开发者)

    Python : 熟悉又陌生的字符编码 字符编码是计算机编程中不可回避的问题,不管你用 Python2 还是 Python3,亦或是 C++, Java 等,我都觉得非常有必要厘清计算机中的字符编码概 ...

  5. Python学习系列(二)(基础知识)

    Python基础语法 Python学习系列(一)(基础入门) 对于任何一门语言的学习,学语法是最枯燥无味的,但又不得不学,基础概念较繁琐,本文将不多涉及概念解释,用例子进行相关解析,适当与C语言对比, ...

  6. python学习之旅1-2(基础知识)

    三,python基础初识. 1.运行python代码. 在d盘下创建一个t1.py文件内容是: print('hello world') 打开windows命令行输入cmd,确定后 写入代码pytho ...

  7. Python学习_02_数字和运算

    python具有强大的科学运算功能,python由于支持更加强大的面向对象和动态特性,相比R语言.matlab.mathmatic等传统的科学计算工具具有非常大的优势. Python的数字 pytho ...

  8. python全栈开发-Day7 字符编码总结

    python全栈开发-Day7 字符编码总结 一.字符编码总结 1.什么是字符编码 人类的字符--------->翻译--------->数字 翻译的过程遵循的标准即字符编码(就是一个字符 ...

  9. 【转】Python中的字符串与字符编码

    [转]Python中的字符串与字符编码 本节内容: 前言 相关概念 Python中的默认编码 Python2与Python3中对字符串的支持 字符编码转换 一.前言 Python中的字符编码是个老生常 ...

随机推荐

  1. GO语言(四)线程通信

    package main import "fmt" func fibon(c,quit chan int) { x,y := , for { select { case c < ...

  2. 我不 大冰2017新书pdf免费下载

    善意能消戾,善意能得缘,善意能带业往生,善意能回头是岸.善意能够帮人捕捉并建立起独特的幸福感. “我不”是一种善意坦然,也是一种善意的随缘,更是一句善意的自省. <我不>——百万级畅销书作 ...

  3. 利用kali嗅探周围发送的短信

    设备清单: 摩托罗拉 C118 (25块) FT232RL USB TO TTL (30元) 摩托罗拉 Motorola C118专用数据连接线 (10块) MiniUSB 链接线(10元,这个大家手 ...

  4. 异常:Neither BindingResult nor plain target object for bean name 'command' available as request attribute

    Neither BindingResult nor plain target object for bean name 'command' available as request attribute ...

  5. gpu 显卡 本质

    根据一切皆文件的理念,显卡.gpu.显示器是特殊的单向的只写文件.

  6. BZOJ3503:[CQOI2014]和谐矩阵(高斯消元,bitset)

    Description 我们称一个由0和1组成的矩阵是和谐的,当且仅当每个元素都有偶数个相邻的1.一个元素相邻的元素包括它本 身,及他上下左右的4个元素(如果存在). 给定矩阵的行数和列数,请计算并输 ...

  7. Codeforces Round #540 (Div. 3) F1. Tree Cutting (Easy Version) 【DFS】

    任意门:http://codeforces.com/contest/1118/problem/F1 F1. Tree Cutting (Easy Version) time limit per tes ...

  8. [19/04/03-星期三] IO技术_其它流(RandomAccessFile 随机访问流,SequenceInputStream 合并流)

    一.RandomAccessFile 随机访问流 [版本1] /* *RandomAccessFile 所谓随机读取就是 指定位置开始或指定位置结束 的读取写入文件 * 实现文件的拆分与合并 模拟下载 ...

  9. OpenID Connect Core 1.0(二)ID Token

    2.ID Token(ID Token) OpenID Connect主要是对OAuth 2.0 能够使得终端用户通过ID Token的数据结构进行验证.当客户端和潜在的其他请求声明,ID Token ...

  10. 一点一点看JDK源码(五)java.util.ArrayList 后篇之sort与Comparator

    一点一点看JDK源码(五)java.util.ArrayList 后篇之sort与Comparator liuyuhang原创,未经允许禁止转载 本文举例使用的是JDK8的API 目录:一点一点看JD ...