一、while循环
循环示意图
循环的作用就是让 指定的代码 重复的执行,while 循环最常用的应用场景就是让执行的代码按照指定的次数重复执行。
while 语句基本语法
while 条件语句:
满足条件执行的语句
else:
不满足条件执行的语句while 条件语句:
满足条件执行的语句
else:
不满足条件执行的语句
eg:
做100内的加法
1+2+3+..+100
sum = 0
i = 1
while i <=100:
sum +=i
i += 1
print(sum)
while死循环
当while后的条件永为真时,则会陷入死循环(无数次执行)
如何定义条件为真:
while True:
while 1/2/‘python’: bool(1)
while 2>1:
while嵌套
99乘法表
row=1
while row <= 9:
col=1
while col <= row:
print('%d*%d=%d\t' %(col,row,row*col),end='')
col+=1
print('')
row+=1
扩充:
print
\t:在控制台输出一个制表符,协助我们在输出文本的时候垂直方向保持对齐。
\n:在控制台输出一个换行符。
:转义字符
练习题
猜数字游戏
1.系统随机生成数字
2.用户总共有5次猜数字的机会
3.如果数字太大则输出‘too big’
4.太小输出‘too small’
5.如果猜对输出‘恭喜获奖100万’并且退出循环。
import random ##倒入random模块
right_num = random.randint(1,100) ##随即生成1-100之间的数
for chance in range(5): ##五次机会
usr_num = int(input('输入一个1到100数字:'))
if usr_num>right_num:
print('too big!!你还有%d次机会'%(4-chance))
elif usr_num<right_num:
print('too small!!你还有%d次机会'%(4-chance))
else:
print('恭喜中奖100万')
break
else:
print('谢谢惠顾!')
二、字符串
1.字符串的定义:
str是在Python编写程序过程中,最常见的一种基本数据类型。字符串是许多单个子串组成的序列,其主要是用来表示文本。字符串是不可变数据类型,也就是说你要改变原字符串内的元素,只能是新建另一个字符串。虽然这样,但python中的字符串还是有许多很实用的操作方法。
定义一个字符串
a = 'hello' ##普通字符串
c = 'what\'s' ##包含特殊字符的字符串需要转移字符/转义
d = "what's" ##双引号亦可转义
e = ''' ##长篇字符块
用户管理系统
1.添加用户
2.删除用户
3.改变用户信息
4.查找用户
'''
字符串类型为str,用str()以转换为字符串
2.字符串的特性
索引:0,1,2,3,4(索引值是从0开始的)
print(s[0]) #拿出第一个字符
print(s[-1]) #拿出最后一个字符
运行结果:
切片
print(s[0:4:2]) #切片规则 s[start:end:step] 从start开始到end-1结束,步长为2
print(s[:]) #显示所有字符
print(s[::-1]) #字符串倒叙
print(s[1:]) #除了第一个字符以外,其他全部显示
重复
print(s * 10) #输出10遍s
连接
print('hello' + 'python')
成员操作符
print('Hi' in s) ##若有这些字符输出Ture,否则输出False
print('Hi' not in s) ##若无这些字符输出Ture,否则输出False
三、字符串常用方法
1.大小写转换
是否为题目(首字母大写)
'Hello'.istitle()
是否为大写
'HELLO'.isupper()
转换为大写
'hello'.upper()
是否为小写
'Hello'.islower()
转换为小写
'Hello'.lower()
转换为题目
'hello'.title()
2.去除字符串的空格
s = ' hello '
s.strip() ##去掉空格
'hello'
s.lstrip() ##左边取消空格
'hello '
s.rstrip() ##右边取消空格
' hello'
s = '\nhello '
s.strip()
'hello'
s = '\nhello\t\t' ##\n和\t默认为空格
s.strip()
'hello'
s = 'helloh'
s.strip('h') ##删除两边的h
'ello'
s.strip('he') ##删除两边的he
'llo'
s.lstrip('he') ##删除左边的he
'lloh'
3.开头和结尾的匹配
filename = 'hello.loggg'
if filename.endswith('.log'): ##如果以.log结尾
print(filename)
else:
print('error file')
4.判断字符
判断是否为数字’1234’.isdigit()
判断是否为字母’fafsdv’.isalpha()
判断是否为字符数字组合’fvavds12314’.isalnum()
练习 便两名是不是合法:
while True:
s = input('输入一个变量名:')
if s == 'exit':
break
if s[0]=='_' or s[0].isalpha():
for i in s[1:]:
if not (i.isalnum()) and i=='_':
print('变量名不合法')
break
else:
print('变量名合法')
break
else:
print('变量名不合法')
字符串的搜索与替换
s = ‘hello world hello’
print(s.find(‘hello’)) ##找到子串,并返回最小索引
print(s.rfind(‘hello’)) ##找到子串,并但会最大索引
print(s.replace(‘hello’,‘westos’)) ##替换字符串中的hello为westos
字符串的对齐
print(‘学生管理系统’.center(30)) ##共输出30个字符且’学生管理系统’居中
print(‘学生管理系统’.center(30,)) ##共输出30个字符且’学生管理系统’居中替换空格
print(‘学生管理系统’.ljust(30)) ##从左对其
print(‘学生管理系统’.ljust(30)) ##从右对其
字符串的统计
print(‘hello’.count(‘l’)) ##l在字符串中出现了几次
print(‘hello’.count(‘ll’)) ##ll在字符串中出现了几次
print(len(‘hello’)) ##字符传长度
字符串的分离和连接
字符串的分离
s = '171.25.254.250'
s1 = s.split('.')
print(s1)
date = '2018-12-04'
date1 = date.split('-')
print(date1)
连接,通过指定的连接符,连接每个字符串
print(’’.join(date1))
print(’/’.join(date1))
print(’@’.join(‘hello’))