Python3入门(2)---Number类型与String类型详解

Number 类型

常用数学函数

函数 描述 所属包
abs(i) 返回数字i的绝对值
ceil(i) 向上取整 math
exp(i) e的i次方 math
fabs(i) 返回数字i的绝对值,浮点类型 math
floor(i) 向下取整 math
log(x, y)\log(x) log以y为底x的对数,没有y时,默认以e为底 math
max(a,,b, c)\max(seq) max获取序列的最大值 math
min(a,b,c)\min(seq) min获取序列的最小值 math
modf(f) 返回一个元组,第一个元素为浮点数位,第二个元素为整数位的浮点数表示,正负与f相同 math
pow(x,y) 等价于x**y
round(f, x)\round(f) 四舍五入,保留x位小数,没有x时,默认不保留小数位
sqrt(x) x的平方根 math
from math import ceil, exp, fabs, floor, log, sqrt, e, modf  ##math包需要单独引入

f = -1.1312321
i = 1

print(abs(f))  ## 1.1312321
print(ceil(f))  ## -1
print(exp(1))  # 2.718281828459045 => python中定义的e
print(fabs(i)) # 1.0
print(floor(f)) # -2
print(log(e))  # 1.0
print(log(1))  # 0.0
print(log(100, 10)) #2.0
print(type(modf(f))) # <class 'tuple'>
print(modf(f)) ## (-0.13123210000000007, -1.0)  浮点位这样表示的原因是计算机的通病,主要是因为计算机是使用二进制保存浮点数
        ## 而导致了浮点数精度丢失
print(pow(2, 3)) # 8
print(round(f, 3)) # -1.131
print(sqrt(4)) # 2

随机数函数

函数 描述 所属包
choice(seq) 从序列中随机选择一个,<font color='red'>字典偶尔会出错</font>,只适用于list,tuple对象 random
randrange([start], stop, [step]) 在start-stop之间选择一个随机数,step为区间内随机数的间隔,start、step可选,默认start = 0(???),step = 1 random
random() [0,1)的随机数 random
shuffle(seq) 把list随机排序,只可用于list random
uniform(x, y) 随机生成一个实数x-y之间的随机浮点数 random
from random import choice, randrange, random, shuffle, uniform

tuple1 = (1, 2, 3, 4, 5, 6, 7, 8, 9, 0)
list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
set1 = {1, 2, 3, 4}
dict1 = {1: '1', 2: '2', 3: '3'}

print(choice(tuple1))
print(randrange(1, 10, 2))
print(randrange(10))
print(random())
print(shuffle(list1))   # None
print(list1)
uniform(1000, 9999)

还有三角函数等...

字符串类型

  • 字符串支持 *操作,输出相同的字符串n次。

  • 字符串转义、字符串元素访问、字符串格式化基本与其他语言类似

  • 支持""" ... """,按照原样输出文本,不进行转义、格式化等操作

  • 在python3.6版本后加入f-string,python3.8之后支持=拼接

  • python3中,所有的字符串都是用Unicode字符串存放的

string = '1234'

pirnt(string * 2) # 12341234
print(f'Hello {string}')  # Hello 1234
print(f'{100 + 321 = }') # 100 + 32 = 132

字符串内建函数:

string = "asdfgh"

string1 = 'asd\tfgh'

函数 描述
string.capitalize() 将string的首字母变为大写
string.center(length[, fillchar]) string的长度大于length时,直接返回原字符串;如果小于length,则默认使用空格填充,将string居中,也可以指定filechar,使用指定的字符填充<font color='red'>填充两侧</font>
string.ljust(width[,fillchar]) string的长度大于length时,直接返回原字符串;如果小于length,则默认使用空格填充,将string左对齐,也可以指定filechar,使用指定的字符填充 <font color='red'>填充右侧</font>
string.rjust(width[,fillchar]) string的长度大于length时,直接返回原字符串;如果小于length,则默认使用空格填充,将string右对齐,也可以指定filechar,使用指定的字符填充 <font color='red'>填充左侧</font>
string.zfill(width) 用0填充的rjust()
string.count(str[, start, end]) string中包含str的次数,start默认为0,end默认为len(string)。
encode/decode 字符串内建了encode函数,encode = string.encode(encoding='ISO-8859-1', errors='strict'),返回的encode类型为bytes,此时可以使用bytes.decode(encoding='GBK', errors='strict'),注意decode的返回值也是bytes类型
string.endswith(str[, start, end]) 判断字符串是否以str结尾,增加start,end参数时,在start-end间的字符串是否以str结尾
string1.expandtabs([tabsize]) 把字符串中的tab符号转换为空格,tabsize默认为8,可以自定义
string.find(str[,start,end]) 判断字符串中是否包含str,增加参数start,end时判断范围修改为start-end之间,如果包含str,则返回首次str出现的下标,否则返回-1
string.index(str[,start,end]) 与find类似,唯一区别的是,当不包含str时,抛出一个异常ValueError: substring not found
string.isalnum() 当字符串是一个非空且由数字-字母-汉字组成的字符串时,返回True,否则返回False【alnum => alpha + numeric】
string.isalpha() 当字符串非空且只包含字母-汉字时,返回True,否则返回False
string.isdigit() 非空字符串只包含数字时,发挥True
string.islower() 非空字符串只包含小写字母时,返回True,否则返回False
string.isnumeric() 非空字符串 只包含数字字符时,返回True
string.isspace() 非空字符串只包含空格返回True
string.istitle() 非空字符串首字母都为大写,则返回True
string.isupper() 非空字符串只包含大写字母时返回True
string.join(seq) 使用字符串连接序列的每一个元素组成一个新的字符串
len(string) 返回字符串长度
string.lower() 将字符串中的大写字母转换为小写字母
string.lstrip([str]) 截去字符串左侧的空格(默认),或者指定的字符串str
string.maketrains(args) 创建一个字符串映射表,args可以为一个字典,也可以为两个长度相同的字符串,string.maketrains(intab, outtab),intab为要替换的字符串,outtab为要被替换的字符串
string.translate(trains) trains为string.maketrains()创建的映射表,将对应的映射表中对应的字母替换
max(string) 返回字符串string中最大的字母
min(string) 返回字符串string中最小的字母
string.replace(oldstr,newstr[,max]) 将字符串中的oldstr替换为newstr,如果指定max,则最多替换max次
string.rfind(str[,start,end]) 类似于find(),从右侧开始
string.rindex(str[,start,end]) 类似于index(),从右侧开始
string.rtrip([str]) 类似于ltrip(),从右侧开始
string.split(str[,num]) 以str为分隔符分隔,如果指定num,则最多分隔num+1个子字符串
string.splitlines([keepends]) 按换行(\r,\r\n,\n)分隔字符串,保存为list,keepends为True保留换行符
string.startwith(str[,start,end]) 判断字符串是否以str开头,添加参数start、end表示在start-end范围内判断
string.strip([str]) 从两端同时截去空格或者str
string.sawpcase() 将字符串中的大写字母转换为小写字母,将小写字母转换为大写字母
string.title() 将字符串的中所有的首字母大写,title格式
string.upper() 将字符串中的小写字母转换为大写字母
string.isdecimal() 非空字符串只包含十进制字符,返回True
string = 'asdaaaa\tfgh'
string1 = '中文'
string2 = '---'
print(string.capitalize())
print(string.center(20))
print(string.count('a'))
encode = string.encode(encoding='latin-1', errors='strict')
print(type(encode))
print(encode.decode(encoding='GBK', errors='strict'))
print(string.endswith("h", 0, 1))
print(string.expandtabs(20))
print(string.find('a'))
# print(string.index('x'))
print(string1.isalnum())
print(string2.isalpha())
print(string.isdigit())
print(string.isnumeric())
print(string.isspace())
string3 = "title"
print(string3.istitle())

tuple1 = ('1', '2', '3', '4')
list1 = ['1', '2', '3', '4']
set1 = {'1', '2', '3', '4'}
dict1 = {'1': 'yi', '2': 'er', '3': 'san'}
print(string2.join(dict1))
print(string2.ljust(10, "@"))
print(string2.lstrip("-"))
print(111)

intab = "aeiou"
outtab = "12345"
dict1 = {'a': '1', 'e': '2', 'i': '3', 'o': '4', 'u': '5'}
# trantab = str.maketrans(intab, outtab)

trantab = str.maketrans(dict1)

str = "this is string example....wow!!!"
print(str.translate(trantab))
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343