循环语句以及字符串

for 循环的语法:

for 变量 in range(10):
循环需要执行的代码
else:
循环结束时需要执行的代码
1+2+3+…+100=

c语言或者java

sum = 0
for(int i=1;i<=100;i++):
sum = sum + i
print sum

range(a,b,c)

rang(a,b,c)意为从a取到b-1并且步长为c,没有a默认从0开始取

range()函数
range(stop): 0~stop 1
range(start,stop):start~stop 1
range(start,stop,step):start~stop step(步长)

range(5)
[0, 1, 2, 3, 4]

range(7)
[0, 1, 2, 3, 4, 5, 6]

range(1,10)
[1, 2, 3, 4, 5, 6, 7, 8, 9]

#拿出1~10之间的所有偶数

range(1,10,2)
[1, 3, 5, 7, 9]

range(1,11,2)
[1, 3, 5, 7, 9]

#拿出1~10之间的所有偶数

range(2,11,2)
[2, 4, 6, 8, 10]

#1~100求和

sum = 0
for i in range(1,101):
sum = sum + i
print(sum)

#需求1:求1~100之间的所有偶数之和
代码:
在这里插入图片描述

sum=0
for i in range(2,101,2):

sum =sum+i

print (sum)

结果展示:
在这里插入图片描述

#需求2:求1~100之间的所有奇数之和
代码:
在这里插入图片描述

sum=0
for i in range(1,100,2):

sum = sum+i

print (sum)

结果展示:
在这里插入图片描述

#需求3:用户输入一个整形数,求该数的阶乘;3!=321
代码:
在这里插入图片描述

num = int(input(‘Num:’))
res = 1
for i in range(1,num+1):

res = res*i

else:

print(’~~~~~~~~~~~~~’)

print(’%d的阶乘的结果为:%d’ %(num,res))

结果展示:
在这里插入图片描述

用户登陆程序需求:
1.输入用户名和密码
2.判断用户名和密码是否正确(name = ‘root’,passwd=‘westos’)
3.为了防止暴力破解,登陆仅有三次机会,如果超过三次,程序就报错

代码:
在这里插入图片描述

for i in range(3):

name = input(‘用户名:’)
passwd = input(‘密码:’)

if name == ‘root’ and passwd == ‘westos’:

print(‘登陆成功’)
break

else:

print(‘登陆失败’)
print(‘您还剩余%d次机会’ %(2-i))

else:
print(‘登陆次数超过三次,请等待100s后再登陆’)

结果展示:
在这里插入图片描述

break:跳出整个循环,不会再执行循环后续的内容
continue:跳出本次循环,continue后面的代码不再执行,但是还是会继续循环
exit():结束程序的运行(尽量避免使用exit)

#使用break实现命令行的雏形

代码:
在这里插入图片描述

import os
for i in range(100000000):
#死循环
#while True:

cmd = input(’[root@test]$’)
if cmd:

if cmd == ‘exit’:

print(‘logout’)
break
print(‘hello’)

else:
print(‘run %s’ %(cmd))
#运行shell命令
os.system(cmd)

else:
continue
print(‘hello’)

结果展示:
在这里插入图片描述

输入两个数值:
求两个数的最大公约数和最小公倍数.
最小公倍数=(num1*num2)/最大公约数

代码:
在这里插入图片描述

num1 = int(input(‘Num1:’))
num2 = int(input(‘Num2:’))
min_num = min(num1,num2)
for i in range(1,min_num+1):

if num1 % i == 0 and num2 % i ==0:

gys = i

lcm = int((num1*num2)/gys)
print(’%s和%s的最大公约数为%s’ %(num1,num2,gys))
print(’%s和%s的最小公倍数为%s’ %(num1,num2,lcm))

结果展示:
在这里插入图片描述

range xrange在python2与3中的区别

python2:
-range(1,5):即刻生成数据,消耗时间并且占用内存
-xrange(1,5):先生成一个xrange对象,使用值的时候才生成数据,才占用内存

python3:
-range(1,5):相当于python2中的xrange

while循环

while 条件:
条件满足时,做的事情1
条件满足时,做的事情2

#‘hello python’

i=1
while i<=5:

print (‘hello python’)
i += 1

#计算0~100之间的所有偶数累计求和

i = 0
sum = 0
while i <= 100:

if i % 2 ==0:

sum += i
i += 1

print(‘0~100之间的所有偶数累计求和的结果是 %d’ %sum)

#死循环

while True:

print(‘hello python’)

while练习(星星)

(1=*)
1
11
111
1111
11111

row = 1
while row <= 5:

col = 1
while col <= row:

print(’*’,end=’’)
col += 1

print()
row += 1

1

11
111
1111
11111

row=5
while row>=1:

col=1
while col<row:

print(’ ‘,end=’’)
col +=1

while col>=row and col<6:

print(’*’,end=’’)

print()
row =row-1
在这里插入图片描述

11111
1111
111
11
1

row=5
while row>=1:

col = 1
while col<=row:

print(’*’,end=’’)
col=col+1

print()
row=row-1
在这里插入图片描述

11111
1111
111
11
1

row=1
while row<=5:

col=1
while col<row:

print(’ ‘,end=’’)
col +=1

while col>=row and col<6:

print(’*’,end=’’)
col +=1

print()
row =row+1
在这里插入图片描述

结果统一展示:
在这里插入图片描述

print(‘1 2 3’)
print(‘10 20 30’)
#\t:在控制台输出一个制表符,协助我们在输出文本时在垂直方向保持对齐
print(‘1\t2\t3’)
print(‘10\t20\t30’)

while练习99乘法表

在这里插入图片描述
1x1=1
2x1=1 2x2=2

a=1
while a<=9:

b=1
while b<=a:

c =a * b
print(’%s*%s=%s\t’ %(a,b,c),end=‘’)
b +=1

print()
a +=1

9x1=9 9x2=18 …
8x1=8 …

a=9
while a>=1:

b=1
while b<=a

c = a * b
print(’%s*%s=%s\t’ %(a,b,c),end=’’)
b +=1

print()
a=a-1

上面两种结果展示:
在这里插入图片描述

在这里插入图片描述
1x1=1
2x2=4 2x1=2

a=9
while a>=1:

b=1
a1=10-a
while b<a:

print(’ \t’,end=’’)
b +=1

while b>=a and b<=9:

c= a1 * b
print(’%s*%s=%s\t’ %(a1,b,c),end=’’)

print()
a = a-1

在这里插入图片描述
9x9=81 9x8=72 …
8x8=64 8x7=56 ,

a=1
while a<=9:

b=9
a1 = 10 - a
while b>a1:

print(’ \t’,end=’’)
b=b-1

while b<=a1 and b>0:

c = a1 * b
print(’%s*%s=%s\t’ %(a1,b,c),end=’’)

print()
a +=1

后两种结果展示:
在这里插入图片描述

循环练习

#猜数字游戏
if , while(for), break
1. 系统随机生成一个1~100的数字;
** 如何随机生成整型数, 导入模块random, 执行random.randint(1,100);
2. 用户总共有5次猜数字的机会;
3. 如果用户猜测的数字大于系统给出的数字,打印“too big”;
4. 如果用户猜测的数字小于系统给出的数字,打印"too small";
5. 如果用户猜测的数字等于系统给出的数字,打印"恭喜中奖100万",并且退出循环;

代码:
在这里插入图片描述

import random
x = random.randint(1,100)
print(x)
trycount = 0
while trycount < 5:

tk = int(input(‘请输入你猜测的数字:’))
if tk == x:

print(‘恭喜中奖100万’)
break

elif tk < x:

print(‘too small’)
trycount += 1

else:

print(‘too big’)
trycount += 1

else:

print(‘机会已经用完了~’)

结果展示:
在这里插入图片描述

字符串常用的转义符号

\n:换行
\t:一个tab键
\ : 转义
\:转义本身

#打印guido’s
#打印"hello guido’s python"

print(‘guido’s’)
print(“guido’s”)
print(’“hello guido’s python”’)
print("“hello guido’s python”")
print(’%s\n%s’ %(a,b))
print(’%s\t%s’ %(a,b))

s = ‘hello’
#索引:0,1,2,3,4 索引是从0开始的

print(s[0])
h
print(s[4])
o

#拿出字符串的最后一个字符

print(s[-1])
o

切片

s[start?step] 从start开始,到end-1结束,步长为step(默认是1)

print(s)
hello
print(s[0:3])
hel
print(s[0:4:2])
hlo

显示所有字符

print(s[:])
hello

显示前3个字符

print(s[:3])
hel

字符串倒序输出

print(s[::-1])
olleh

除了第一个字符之外,其他的全部显示

print(s[1:])
ello

#重复

print(s*10)
hellohellohellohellohellohellohellohellohellohello

#连接

print('hello '+‘world’)
hello world

#成员操作符

print(‘he’ in s)
print(‘aa’ in s)
print(‘he’ not in s)

例题

##题目要求:
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样
的整数。
示例 1:
输入: 121
输出: true
#示例 2:
输入: -121
输出: false
解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
#示例 3:
输入: 10
输出: false
解释: 从右向左读, 为 01 。因此它不是一个回文数
num = input(‘Num:’)
print(num == num(::-1))

代码:
在这里插入图片描述
结果展示:
在这里插入图片描述

#不用字符串的形式,用整数来判断?

使用数学判断回文数

代码:
在这里插入图片描述
在这里插入图片描述

结果展示:
在这里插入图片描述

匹配字符串的开头和结尾

filename=‘hello.logggh’
if filename.endswith(’.log’):

print(filename)

else:

print(‘error file’)

url1 = ‘file:///mnt’
url2 = ‘ftp://172.25.254.250/pub/
url3 = ‘http://172.25.254.250/index.html
if url3.startswith(‘http://’):

print(‘爬取网页’)

else:

print(‘不能爬取网页’)

在这里用.代替空格

s = ‘…hello’
s.strip()
‘hello’

s = ‘… hello…’
s.strip()
‘hello’

s.lstrip()
'hello… ’

s.rstrip()
‘…hello’

s = ‘\nhello…’
s.strip()
‘hello’

s = ‘\thello…’
s.strip()
‘hello’

s = ‘helloh’

s.strip(‘h’)
‘ello’

s.strip(‘he’)
‘llo’

s.lstrip(‘he’)
‘lloh’

s.rstrip(‘he’)
‘hello’

print(‘学生管理系统’.center(50,’*’))
学生管理系统

print(‘学生管理系统’.ljust(50,’*’))
学生管理系统********************************************

print(‘学生管理系统’.rjust(50,’*’))
********************************************学生管理系统

find: 找到字符在字符串的定位
replace:代替
count:统计字符出现的次数

s = ‘hello python,learn python’

s.find(‘python’)
6

s.rfind(‘python’)
19

s.replace(‘python’,‘linux’)
‘hello linux,learn linux’

s1 = s.replace(‘python’,‘linux’)

s1
‘hello linux,learn linux’

s
‘hello python,learn python’

s.count(‘python’)
2

s.count(‘p’)
2

s.count(‘i’)
0

split:通过指定的内容将字符串分化并输出
join:利用指定符号将字符分割并输出

ip = ‘172.25.254.10’
ip1 = ‘1172.25.254.10’

ip1.split(’.’)
[‘1172’, ‘25’, ‘254’, ‘10’]

date = ‘2018-11-18’

date.split(’-’)
[‘2018’, ‘11’, ‘18’]

date.split(’.’)
[‘2018-11-18’]

date.replace(’-’,’/’)
‘2018/11/18’

ip = [‘1172’, ‘25’, ‘254’, ‘10’]

‘’.join(ip)
‘11722525410’

‘:’.join(ip)
‘1172:25:254:10’

’.join(ip)
'1172
2525410’

(2017-小米-句子反转)

  • 题目描述:
    给定一个句子(只包含字母和空格), 将句子中的单词位置反转,单词用空格分割, 单词之间只有一个空格,前>后没有空格。 比如: (1) “hello xiao mi”-> “mi xiao hello”
  • 输入描述:
    输入数据有多组,每组占一行,包含一个句子(句子长度小于1000个字符)
  • 输出描述:
    对于每个测试示例,要求输出句子中单词反转后形成的句子
    示例1:
  • 输入
    hello xiao mi
  • 输出
    mi xiao hello

代码:
在这里插入图片描述

结果展示:
在这里插入图片描述

作业

  1. 设计一个程序,帮助小学生练习10以内的加法
    详情:
  • 随机生成加法题目;
  • 学生查看题目并输入答案;
  • 判别学生答题是否正确?
  • 退出时, 统计学生答题总数,正确数量及正确率(保留两位小数点);

代码:
在这里插入图片描述

运行结果:
在这里插入图片描述
在这里插入图片描述

  1. 小学生算术能力测试系统:
    设计一个程序,用来实现帮助小学生进行百以内的算术练习,它具有以下功能:
    提供10道加、减、乘或除四种基本算术运算的题目;
    练习者根据显示的题目输入自己的答案,程序自动判断输入的答案是否正确并显示出相应的信息。
    提示:import random
    op = [’+’,’-’,’*’,’/’]
    s = random.choice(op)
    print(s) #随机加减乘除

代码:
在这里插入图片描述
在这里插入图片描述

结果展示:
在这里插入图片描述
在这里插入图片描述

  1. 算法之指定范围内判断
    1). 若一个正整数n的所有小于n的因子之和等于n, 则称n为完全数, 如6=1+2+3是完全数。判断正整数n是否为完全数。
    2). 输入一个正整数,判断其是否为一个素数

代码:
在这里插入图片描述

结果展示:
在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值