系列文章目录

第五章 Python 机器学习入门之循环语句与字符串内置函数


Python 机器学习入门之循环语句

  • 系列文章目录
  • 前言
  • 一、while
  • 二、while嵌套循环
  • 三、掷骰子
  • 四、break和continue的区别
  • 四、字符串运算符
  • 五、字符串的内置函数
    • 第一部分:字符串内置函数之大小写相关的
    • 第二部分:字符串内置函数之查找
    • 第三部分:字符串内置函数之编码和判断开头结尾
    • 第四部分:字符串内置函数之判断数字和字母
    • 第无部分:字符串内置函数之合并拆分

前言

今天学习while循环的使用,字符串的内置函数


一、while

使用死循环会对计算机产生负荷,一直在运行,所以写while循环时要避免死循环的产生。
while 条件语句:print('执行语句')
else:

示例①
打印1-30之间的倍数

方案一:
n=1
while n<=30:if n%3==0:print('----',n)n+=1
方案二:
n=3
while n<=30:print('----',n)n+=3

示例②
打印1-20计算累加和

i=1
sum=0
while i<=20:sum=i+sumi+=1

二、while嵌套循环

示例③
打印三角形

*
**
***
****
*****
ceng=1
while ceng<=5:num=1while num<=ceng:print('*',end='')num+=1print()   ceng+=1

示例四
9*9乘法表

ceng=1
while ceng<=9:count=1while count<=ceng:print('{}*{}={}'.format(count,ceng,count*ceng),end=' ')count+=1print()ceng+=1

三、掷骰子

练习①:
1.欢迎加入xxxx游戏
2.输入用户名,默认用户是没有币
3.提示用户充值买币(100块钱30币,充值必须100的倍数,充值不成功可以再次充值)
4.玩一局游戏扣除两个币,猜大小(系统随机数模拟骰子产生值)
只要猜对了奖励一个币,可以继续玩(想不想记叙文,也可以没有金币自动退出)

print('*'*30)
print('欢迎加入澳门皇家赌场')
print('*'*30)username = input('请输入顾客的大名:')
money = 0
answer = input('确定进入游戏吗(y/n)')
if answer=='y':#判断游戏币是否充足while money<2:n= int(input('金币不足,请充值(100块钱30币,充值必须100的倍数)'))#充值金额判断if n%100==0 and n>0:money=(n//100)*30print('当前剩余游戏币{}'.format(money))print('进入游戏')
while True:#模拟骰子,产生骰子的值import randomt1 = random.randint(1,6)t2 = random.randint(1,6)#两个骰子的值大于6---->大,否则就是小print('系统洗牌完毕,请猜大小:')guess = input('请输入大或者输入小:')#判断:if((t1+t2)>6 and guess=='大') or ((t1+t2)<=6 and guess=='小'):print('恭喜{}!本局游戏获奖励1个游戏币!'.format(username))money+=1else:print('很遗憾!本局游戏输啦/(ㄒoㄒ)/~~')answer = input('是否继续再来一局游戏,要扣除2枚游戏币(y/n)')if answer !='y' or money<2:print('退出游戏啦!!!!')break

四、break和continue的区别

sum=0
for i in range(10):#0~9if i%3==0:sum+=i#break  跳出整个for循环结构continue#continue跳过下方的语句不执行,继续执行下一次循环。
print(sum)

所以,当上面代码中,使用break时,当i=3时就进入循环,经过break后直接跳出循环,输出sum=3.
当代码中使用continue时,i=3时进循环sum+=3,continue后,继续循环,i=6,i=9时都进入if执行语句,所以sum=3+6+9=18.

四、字符串运算符

s1 = 'abc'
s2 = "abd"
s3 = '''
abc
'''
print(id(s1),id(s2),id(s3))#结果是唯独s1和s2的地址一样的,三引号占用的内存空间与单双引号的不同(但是当s3中三引号都在一行上,则三者都是一样的:s3='''abc''')print(s1 == s2)#比较的是内容
print(s1 is s2)#比较的是地址
s1 = input('请输入:')#abc
s2 = input('请输入:')#abc
print(s1==s2)         #True
print(s1 is s2)         #Fasle
(常量赋值is是True,input输入底层做了处理所以最后的地址是不一样的。)************字符串的运算符:+   *    in   not in    r保留转义   %字符串的格式化
s3='i love'+'you' #相当于拼接符
s4='红栈茶凉'*5      #倍数name = 'kuli'
result = 'l' in name #返回值是布尔类型True  False
print(result)
:Truename = 'kuli'
result = 'l' not in name #返回值是布尔类型True  False
print(result)
:False

如果我们想要读取字符串中某一位的字符我们可以使用 []
例如:

name= '红栈茶凉'
print(name[2])
这时候显示的就是'茶'因为像矩阵一样,第一个字符都是0

而,想要得到连续的几个字符。 [start:end]

name= '红栈茶凉'
print(name[0:2])
这时候显示的就是'红栈茶'

还可以这样用, [start:]

name= '红栈茶凉'
print(name[1:])
这时候显示的就是'栈茶凉'

也可以这样用, [:end]

name= '红栈茶凉'
print(name[:2])
这时候显示的就是'红栈茶'

还可以用负数表示比如:[0:-2],字符串最后一位为-1

name= '红栈茶凉'
print(name[0:-2])
这时候显示的就是'红栈茶'

将倒着输出也可以这样写[start:end:step]

name= '红栈茶凉'
print(name[::-1])
这时候显示的就是'凉茶栈红'这里需要注意一些:写的时候[]内方向应该和step的方向是一样的:[-4:-1:-1]

练习②:hello world
逆序输出world
正向输出hello
逆序输出整个hello world
打印获取oll
打印llo wo

say = 'hello world'
s1 = print(say[-1:-6:-1])
s2 = print(say[:5])
s3 = print(say[::-1])
s4 =  print(say[-7:-10:-1])#s4 =  print(say[4:1:-1])
s5 =  print(say[2:8])

五、字符串的内置函数

字符串的内置函数:声明一个字符串,默认可以调用内置函数(系统准备好的一些函数)我们需要学会怎么使用。

第一部分:字符串内置函数之大小写相关的

#capitalize()   title()   istitle()   upper()   isupper()  lower()  islower()
message = 'i miss you sometime'
msg = message.capitalize()#将字符串的第一个字符转成大写的标识形式msg = message.title()#将每个单词的首字母都大写
msg = message.istitle()#判断每个单词的首字母是否大写,输出True or Falsemsg = message.upper()#小写转大写
msg = message.isupper()#判断是否大写msg = message.lower()#大写全部转为小写
msg = message.islower()#判断是否小写

案例①:验证码案例
输出四个随机数

s='ABCDEFGHJJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890'
print(len(s))  #求字符串的长度len
code = ''
for i in range(4):import randomran = random.randint(0,len(s)-1)code += s[ran]
print('验证码为{}'.format(code))
answer = input('请输入验证码')
answer = answer.lower()
if answer == code.lower() :print('输入正确')
else:print('输入错误')

第二部分:字符串内置函数之查找

#查找相关的,替换
#find() rfinf() lfind() index() rindex() lindex() replace()
s='BCDEFGHJJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890'
answer = s.find('D')
print(answer)#返回值为2,D位于s[2],注意返回第一次出现的位置。
answer = s.find('A')
print(answer)#找不到,返回值为-1
answer = s.find('A',3,len(s))#也可以从指定开始位置到指定结束位置查找。
print(answer)#找不到,返回值为-1rfind和lfind:和find用法一致,分别是从右往前找,从左往后找。index和find的区别:使用方法是一样的,主要是当无法找到时,index会报错,而find会返回-1。

第三部分:字符串内置函数之编码和判断开头结尾

字符串内置函数:encode 编码 decode解码
编码:网络应用(中文一般涉及编码问题)

msg = '红栈茶凉'#中文
#gbk 中文  gb2312 简体中文 unicode
result = msg.encode('utf-8')
print(result)
#解码
m=result.decode('utf-8')
print(m)----------------------------------
b'\xe7\xba\xa2\xe6\xa0\x88\xe8\x8c\xb6\xe5\x87\x89'
红栈茶凉

字符串内置函数:startswith() endswith()返回值都是True False
startswith判断是否是以xxx开头,或者endswith判断是否一xxx结尾
应用场景:文件上传 只能上传图片(jpg,png,bmp,gif)

filename = 'note.doc'
result = filename.endswith('txt') #判断filename是否以txt结尾
print(result)
s='hello'
result = s.starswith('H')#判断是否h开头#文件上传  只能上传图片(jpg,png,bmp,gif)
path = input('请选择图片')   #C:\桌面自制\girl.PNG
#分析:要上传的文件的路径path---->文件名---->通过文件名在判断是否是图片类型
p = path.rfind('\\')#p = path.rfind(r'\')这样会报错,r不能和\单独一个字符,后面可以是\sdsd但是不能是单独一个\
filename = path[p+1:]
#判断是否是图片类型
if filename.endswith('jpg') or filename.endswith('PNG') or filename.endswith('bmp'):print('图片格式符合要求,允许上传')break
else:print('非法图片格式,只能上传图片格式。')

第四部分:字符串内置函数之判断数字和字母

内置函数:isalpha() 是否为字母 isdigit()是否是数字 isalnum 是否全为数字或字母返回值是布尔类型。
max(str):返回字符串中最大字母
min(str):返回字符串中最小的字母

s = 'hzcl'
result = s.isalpha()
print(result)
s='1234'
print(result)
-----------------------
True
True
sum=0
for i in range(3):num=input('请输入数字:')#输入三次数字,相加,不是数字时不相加if num.isdigit():num=int(num)sum+=num
print('sum=',sum)

上一个代码,没法对不是数字重新输入,想要对输入错误重新输入可以受用while语句

sum = 0
i = 1
while i<=3num=input('请输入数字:')#输入三次数字,相加,不是数字时不相加if num.isdigit():num=int(num)sum+=numi+=1print('{}累加成功'.format(num))else:print('不是数字重新输入')print(sum)

第无部分:字符串内置函数之合并拆分

内置函数:join():’_’.join(‘abc’)
strip():lstrip()+rstrip()
lstrip():去除字符串左侧空格
rstrip():去除字符串右侧空格

new_str='_'.join('abc')#将abc用_连接构成一个新的字符串
print(new_str)
-------
a_b_c

还能这样用:

str = ['l','o','v','e']
ste = ''.jion(str)
print(ste)
---------
love

去除空格函数strip:

s= '     love      '
s=s.lstrip()#去除字符串左侧空格
print(s)

分割字符串split()

s = 'hello world girl'
result=s.split(' ')#分割字符串,将分割后的字符保存在列表中。
print(result)
------
'hello'
'world'
'girl'
--------
s = 'hello world girl'
result=s.split(' ',1)#分割字符串几次,这里为1次
print(result)
'hello'
'world girl'

求个数函数count():

s = 'hello world girl'
result=s.count(' ')#空格的个数,
print(result)
------
2

Python 循环语句和字符串内置函数相关推荐

  1. 来自python的【str字符串内置函数】

    字符串内置函数–capitalize 遇见非字符串后,下一个字符大写 str.capitalize():将字符串转换成大写,其他字母变成小写 capitalize 含义 capitalize(...) ...

  2. python center函数_数据类型和数据结构(三):字符串(4) 字符串内置函数(1)

    Photo by Ray Hennessy on Unsplash 4 字符串内置函数 除了使用+.*.in对字符串操作之外,我们还可以使用Python提供的多种字符串内置函数来对字符串进行操作处理. ...

  3. 自学python第四课——字符串运算符、字符串内置函数、字符串常用方法总结

    第四课 字符串 单.双.三引号 直接赋值和用 input 赋值: "+"号和"*"号在字符串中的使用 in 和 not in 字符串的格式化 r 保留原格式,即 ...

  4. python中字符串函数的用法_python中字符串内置函数的用法介绍(代码)

    本篇文章给大家带来的内容是关于python中字符串内置函数的用法介绍(代码) ,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. capitalize() 首字母大写a='somewor ...

  5. Python:'string'字符串内置函数的用法

    本文主要讲的是在python中,str字符串的各类内置函数的用法 id() 打印出指定字符串的内存地址 s='123456789' print(s[1])#输出字符串中指定的字符 print(s[-1 ...

  6. python中字符串函数的用法_python中字符串内置函数的用法总结

    capitalize() 首字母大写 a='someword' b=a.capitalize() print(b) ->Someword casefold()&lower() 所有字母变 ...

  7. Python学习笔记(4)~Python基础练习之常用内置函数(1-10)

    Python基础练习之常用内置函数(1-10) 1.abs() 作用         求数的绝对值或者复数的模 测试demo #!/usr/bin/python3 # abs: 求绝对值 or 复数的 ...

  8. python基础12_匿名_内置函数

    # 二分查找 示例 data = [1, 3, 6, 7, 9, 12, 14, 16, 17, 18, 20, 21, 22, 23, 30, 32, 33, 35, 36, 66]def bina ...

  9. golang中字符串内置函数整理

    字符串内置函数 1. 判断字符串的长度 str := "korea国" fmt.Println("str len=", len(str)) 2. 字符串遍历,同 ...

最新文章

  1. linux文件管理器添加项目,LXQt 0.14 发布,文件管理器添加拆分视图
  2. python画苹果标志图片_Mac生成APP图标和启动图的脚本
  3. python3.4和3.5的区别_在3.4和3.5之间的python中的协同程序,我如何保持支持的兼容性?...
  4. 关于左移右移的操作 学习
  5. 智能语音识别系统_语音识别技术原理_智能语音识别系统如何识别用户意图_企业服务汇...
  6. 安卓手机与电脑无线传输文件(利用ftp服务)
  7. cadence17.4 设计PCB零基础教程入门学习过程
  8. 安装SQL Server 2016
  9. Ghelper安装及使用
  10. 利用XrecycleView写多条目展示+流式布局
  11. 盘点:20位近两年新任“院士校长”!
  12. 腾讯安卓开发面试,腾讯+字节+阿里面经真题汇总,Android篇
  13. Android中基于心知天气API获取天气信息
  14. mysql 1593_Linux中MySQL主从复制中出现1593错误码的低级错误
  15. keydown、input、keyup
  16. 开发框架——横版格斗——动作游戏教程
  17. 安全协议系列(一)----WEP详解
  18. 罗振宇 知识就是力量:怎样成为一个不纠结的人
  19. 年纪轻轻就要秃了?别怕,用它,让你重新找回浓密秀发!
  20. [ES笔记]持续更新中

热门文章

  1. 扩展虚拟机C盘内存空间
  2. Python构造函数的继承
  3. 光引发剂主要用途_光引发剂分类及用途.doc
  4. 软件测试 | app自动化测试(Android)--触屏操作自动化
  5. 无线网络覆盖方案案例
  6. 智能手机股票交易方法
  7. AR Trump2(多卡识别学习)
  8. Windows操作系统磁盘碎片整理程序的作用
  9. oracle查询表唯一索引,oracle查询索引(oracle查看表索引)
  10. KT148A语音芯片420s秒的语音空间是什么意思,mp3文件支持多大