Python3关于数学类、随机数模块、字符串的相关操作、代码和用法分析讲解
一:数字类
abs() 绝对值
max(,,,...) 求最大值 例:max(a,b,c) 求a,b,c三个数的最大值
min(,,,...) 求最小值 例:max(a,b,c) 求a,b,c三个数的最小值
pow(a,b) a的b次方 例:pow(3,5) 求3的5次方
round(a,b) a的值四舍五入 a为数值 b为保留几位小数 例:round(3.14,1) 即 3.1 若不写b则保留整数
sum([]) 求和 传递的是一个列表 打印时 例: print(sum([1,2,3,4,5,6]))
二:模块
格式:import + 模块名(不能自己起,python3内置函数模块)
(1)math模块
import math 先引入matn()函数模块 下边才可以使用。
print(math.ceil(3.9)) ceil 向上取整 即3.9=4
print(math.floor(3.9)) floor 向下取整 即3.9=3
print(math.sqrt(8)) 求平方根
print(math.modf(3.14)) 返回小数和整数部分 先小数 后整数
print(math.pi) 3.14
(2)随机数模块
import random 先引入random()函数 下边才可使用
print(random.random()) 随机输出[0,1)之间的小数,取不到最大值1
print(random.randint(a,b)) 随机输出[a,b]之间的整数。可以取两边
print(random.randrange(a,b,c)) 随机输出[a,b)之间的整数,取不到最大值 只写一个数,默认从0开始到该数 字,c为步长,即每次的增加量。
print(random.uniform(a,b)) 随机输出[a,b)之间的小数
print(random.choice([1,2,'a','b'])) 随机输出列表中的一个
print(random.sample([1,2,"a","b"],n)) 随机输出列表中的n个 n应小于列表元素个数,不然报错
random.shuffle() 将列表中的元素随机打乱顺序后输出,括号内加列表名
练习题:
1.生成随机4-6位的验证码,由大写小写字母,数字构成
import random num=random.randint(4,6) n=1 while n<=num: b=random.choice('abcdefabcdef0123456789') print(b,end='') n+=1
2.从键盘输入一个数,与从1-100中间随机的数相比,大了输出你猜大了,相等输出你猜对了,小了输出你猜小了
import random a=0 while true: b=random.randint(1,100) n=int(input('请先猜一个数:')) print(b) if n < b: print('猜小了') elif n > b: print('你猜大了') elif n == b: print('你猜中了') break a+=1 print('你总共猜了%d次'%a)
二:字符串
例:str='adadsafsdf'
访问字符串中的一个字符:print(str[8])
三:字符串运算
1.加法运算是拼接操作
例:str1='123'
str2='456'
print(str1+str2)
2.乘法运算只能与数字相乘,且并不是进行计算,而是乘以几就是在一行连续输出几次该字符串,字符串与字符串不能 相乘
例:str1='123'
print(str1*3)
3.获取字符串长度 print(len(str)) len()函数 pytho3内置函数 获取字符串长度
4.字符串查找:index()函数:根据元素查找下标 括号中写入你要查找的元素,当有该字符串中有多个相同元素时 找的 是从左到右第一个出现的该元素位置,若想从右往左找用rindex(),也可以指定位置查找 index('x',a,b)意思是在a-b范围内找元素x,不包含最大值
find()函数: 用法基本与index()函数一样,不同点是find找不到元素时输出-1,index()函数找不到时报 错
例:str1='hello wrold'
print(str1.index('o')) 4
print(str1.index('o',4,6)) 4
print(str1.rindex('o')) 8
print(str1.find('o')) 4
print(str1.rfind('o')) 8
print(str1.find('o',4,6)) 4
print(str1.find('x')) -1
print(str1.index('x')) 报错
四:字符串操作
1.截取(切片)
str='hello wrold'
print(str[a:b]) 截取从a-b之间的字符串,不包含最大值
print(str[:b]) 截取从0到b之间的字符串,不包含最大值
print(str[a:]) 截取从a到最后之间的字符串
print(str[a::b]) 截取从a到最后之间的字符串, a>0 正输出 a<0 反输出 b代表步长 b>0 正加 b<0 反加
截取升级版
str='***hello***'
print(str.strip())截掉两边空格,若两边不是以指定字符开头则不运行。
print(str.lstrip('*'))截掉字符串最左边的指定字符,若最左边不是以指定字符开头则不运行。
print(str.rstrip('*'))截掉字符串最右边的指定字符,若最右边不是以指定字符开头则不运行。
print(str.strip('*'))截掉字符串两边的指定字符,若两边不是以指定字符开头则不运行。
2.替换
str='你好,我好,大家好'
str1=str.replace('好','坏')# 后边带上数字的话就是替换几个 不写就是全部替换。
print(str1)
3.大小写转换
str='hello abc'
print(str.upper()) 字符串全部大写
print(str.lower()) 字符串全部小写
print(str.swapcase())大转小,小转大
print(str.title())将每个单词的首字母大写,其余小写
print(str.capitalize())将整个字符串的第一个字母大写,其余小写
4.拆分
str='hello wrold 你好 世界'
print(str.split(' ',1)) 1表示拆一个空格,一般情况下不写代表全部拆分
print(str.split('l')) 括号中代表你是按什么拆分 拆分后括号中内容将不存在
str1='hello\nwrold'
print(str1.splitlines())按换行符来拆分 无换行字符则不拆分
5.指定字符串长度
str='hello'
print(str.ljust(30,'*')) #指定字符串长度为30,不足则用指定内容填充,并且以左对齐
print(str.rjust(30,'*')) #指定字符串长度为30,不足则用指定内容填充,并且以右对齐
print(str.center(30,'*'))#指定字符串长度为30,不足则用指定内容填充,居中对齐
print(str.zfill(30))#指定字符串长度为30,不能指定填充内容,不足则用0填充,以右对齐
6.判断
str='helloworld'
print(str.startswith(''))#判断是否用指定的字符开头 是 true 不是 false
print(str.startswith('',a,b))#判断是否用指定的字符开头 是 true 不是 false a,b 范围
print(str.endswith(''))#判断是否用指定的字符结尾 是 true 不是 false
print(str.isalpha())#判断整个字符串是否全都为字母 是 true 不是 false
print(str.isalnum())#判断整个字符串是否全都为字母或数字 是 true 不是 false
print(str.isupper())#判断整个字符串的所有字母是否全都为大写 是 true 不是 false
print(str.islower())#判断整个字符串的所有字母是否全都为小写 是 true 不是 false
print(str.istitle())#判断每个单词的首字母是否全为大写 是 true 不是 false
print(str.isdigit())#判断整个字符串是否全都为数字 是 true 不是 false
print(str.isspace())#判断整个字符串是否全都为空格 是 true 不是 false
7.查找次数
str='aaa'
print(str.count('a'))#查找该字符在字符串中出现的次数
8.eval()相当于把字符串的引号给去掉了,但是前提字符串的内容必须是一个有效的表达式可以是数字,运算符号,但不能写字母,汉字
9.format()格式化输出
name='席'
age=20
print('姓名:{},年龄:{}'.format(name,age))
练习题:
1.写一个字符串,统计这个字符串中大写,小写,数字出现的次数
str=input('请输入字符串:') dx=xx=sz=s=0 while s<=len(str): z=str[s:s+1] if z.isupper()==true: dx += 1 elif z.islower()==true: xx += 1 elif z.isdigit() == true: sz += 1 s+=1 print(dx,xx,sz)
2.写一个字符串,取出字符串中所有数字,并求和
str=input('请输入字符串:') sum=s=0 while s<=len(str): z=str[s:s+ 1] if z.isdigit() == true: sum+=int(z) s+=1 print(sum)
3.写一个字符串,取出这个字符串中重复的数据
str1=input("请输入字符串") str2="" str3="" i=0 while i
4.请将一个字符串反转输出
str=input('请输入字符串:') print(str[-1::-1])
5.用户输入一个字符串验证是不是手机号
str=input('请输入手机号码:') if str.isdigit()==true and len(str)==11 and int(str[0:1])==1: print('是电话号码') else: print('错误')
作为刚刚学习python3的菜鸟,我只是把我每天学习的内容分享出来,由于水平还有限,一些题的解题方法,用目前所学的知识解起来都比较复杂,不过也没办法,谁让这是老师的要求不能用后边的知识呢,毕竟用目前所学的知识解题有很大的局限性,随着课程的学习,我会回过头重新来过,用新的知识去写解题方法。如果我的笔记有任何问题,请及时与我联系,我会及时更改,谢谢。