当前位置: 移动技术网 > IT编程>脚本编程>Python > Python3关于数学类、随机数模块、字符串的相关操作、代码和用法分析讲解

Python3关于数学类、随机数模块、字符串的相关操作、代码和用法分析讲解

2019年06月18日  | 移动技术网IT编程  | 我要评论

一:数字类

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的菜鸟,我只是把我每天学习的内容分享出来,由于水平还有限,一些题的解题方法,用目前所学的知识解起来都比较复杂,不过也没办法,谁让这是老师的要求不能用后边的知识呢,毕竟用目前所学的知识解题有很大的局限性,随着课程的学习,我会回过头重新来过,用新的知识去写解题方法。如果我的笔记有任何问题,请及时与我联系,我会及时更改,谢谢。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网