Linux---python中while for str

 

break: 某一条件满足的时候,退出循环,不再执行后续重复的代码
在循环体内部,我们可以增加额外的条件,在需要的时候,跳出整个循环
i = 0

while i <10:
    if i == 3:
        break
    print i
    i +=1

print 'over'

 


continue:某一条件满足的时候,不执行后续重复的代码,其他条件都要执行

i = 0
# continue:继续,持续:让我们的代码遇到continue关键字的时候
# 继续到 循环的那一条语句中去
while i < 10:
    i +=1
    if i == 3:
        continue
    #i += 1
    print i

# _*_ coding:utf-8 _*_
"""
file: day02_while01.py
date: 2018-08-27 9:07 AM
author: westos-dd
desc:
while 条件():
  条件满足时,做的事情1
  条件满足时,做的事情2
     ......


"""
# print 'hello python'
# print 'hello python'
# print 'hello python'
# print 'hello python'
# print 'hello python'

# 1.定义一整数变量,记录循环的次数
i = 1
# 2.开始循环
while i <= 3:
    # 希望循环内执行的代码
    print 'hello python'
    # 处理计数器
    # i = i +1
    i += 1

# 定义死循环
while True:
    print 'hello python'

 

练习:计算,0~100之间所有数字的累积求和
python中的计数方法
常见的计数方法有两种,可以分为
自然计数法(从1开始) -- 更符合人类的习惯
程序计数法(从0开始) -- 几乎所有的程序语言都选择从0开始计数
因此,大家在编写程序时,应该尽量养成习惯:除非需求的特殊要求,否则循环的计数从0开始
循环计算
在程序开发中,通常会遇到利用循环重复计算的需求(利用CPU的强大之处 完成相应的复杂计算)
遇到这种情况:
1.在while上方定义一个变量,用于存放最终的计算结果
2.在循环体内部,每次循环都用最新的计算结果,更新之前定义的变量
# 1.定义一个整数记录循环的次数
i = 0
# 2.定义最终结果的变量
result = 0

# 3.开始循环
while i <= 100:
    print i
    # 4.每次循环都让result这个变量和i这个计数器相加
    result += i # result = result + i
    # 处理计数器
    i += 1
print '0~100之间的数字求和的结果是 %d' %result

 计算0~100之间所有偶数的累积求和
i = 0
result = 0

while i <= 100:
    if i % 2 == 0:
        print i
        result +=i
    i += 2
print '0~100之间的偶数累加的结果是 %d' %result

   计算0~100之间所有奇数的累积求和

"""
i = 0
result = 0

while i <= 100:
    if i % 2 != 0:
        print i
        result +=i
    i += 1
print '0~100之间的奇数累加的结果是 %d' %result

在控制台连续输出五行*,每一行星号的数量依次递增
1 1
2 2
3 3
4 4
5 5
"""
row = 1
while row <= 5:
    # 每一行要打印的星星就是和当前行数是一致的
    # 增加循环,专门负责当前的行中,每一列的星星显示
    # 1.定义一个列计数器
    col = 1
    # 2.开始循环
    while col <= row:
        #print '%d' % col
        # 不换行输出
        print '*',
        col += 1
    # print '*'
    #print '第 %d 行' % row
    # 这行代码的目的,就是在一行小星星输出完成后,添加换行
    print ''
    row += 1

打印九九乘法表

"""
row = 1
while row <= 9:
    col = 1
    while col <= row:
        print '%d * %d = %d\t' % (row, col, col * row),
        col += 1
    # print '%d' % row
    print ''
    row += 1

 print '1 2 3'
 print '10 20 30'
 print '1\t2\t3'
 print '10\t20\t30'
 # \n:在控制台输出一个换行符
 print 'hello\npython'
 # \:转义字符
 print 'hello \'world'

# _*_ coding:utf-8 _*_
"""
file: day02_while练习题01.py
date: 2018-08-27 9:51 AM
author: westos-dd
desc:

猜数字游戏

    1. 系统随机生成一个1~100的数字;
     2. 用户总共有5次猜数字的机会;
     3. 如果用户猜测的数字大于系统给出的数字,打印“too big”;
     4. 如果用户猜测的数字小于系统给出的数字,打印"too small";
     5. 如果用户猜测的数字等于系统给出的数字,打印"恭喜",并且退出循环;

"""

 

# _*_ coding:utf-8 _*_
"""
file: day02_while练习题02.py
date: 2018-08-27 9:51 AM
author: westos-dd
desc:
break 实现命令行提示符雏形

"""
import os
while True:
    cmd = raw_input('[kiosk@test ~]$')
    if cmd:
        if cmd == 'exit':
            print 'logout'
            break
            #print 'hello'
        else:
            print 'run %s' % cmd
            # 运行shell命令
            os.system(cmd)
    else:
        continue
        #print 'hello'

 

#####for循环#####

# _*_ coding:utf-8 _*_
"""
file: for_01.py
date: 2018-08-27 11:38 AM
author: westos-dd
desc:
for 循环使用的语法
    for 变量 in range(10):
        循环需要执行的代码

"""
"""
C Java
sum = 0
for(i = 1;i<100;i++)
    sum = sum +1;

"""

"""
在ipython中    

################

例如           在ipython中:range(1,10,2)   显示的是数字1,3,5,7 ,9               ‘2‘表示间隔为两位。

################

   

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

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

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

拿出1~10之间的所有奇数
In [5]: range(1,11,2)
Out[5]: [1, 3, 5, 7, 9]

拿出1~10之间的所有偶数
In [6]: range(2,11,2)
Out[6]: [2, 4, 6, 8, 10]

In [7]: range(2,11,3)
Out[7]: [2, 5, 8]

In [8]: range(2,11)
Out[8]: [2, 3, 4, 5, 6, 7, 8, 9, 10]

range(stop): 0~stop 1
range(start,stop):start-stop 1
range(start,stop,step): start~stop step(步长)
"""
#
# for i in range(5):
#     print i

# 1.求1~100之间的所有偶数之和
sum = 0
for i in range(2,101,2):
    sum += i
print sum
# 2.求1~100之间的所有奇数之和
sum1 = 0
for i in range(1,101,2):
    sum1 += i
print sum1

# 3.用户输入一个整型数,求该数的阶乘
# 3 != 3*2*1
num = int(raw_input('Num:'))
res = 1
for i in range(1,num+1): # num:3 rang(1,4)== 1,2,3
    res = res * i
print '%d 的结果是:%d' %(num,res)

# _*_ coding:utf-8 _*_
"""
file: for循环练习01.py
date: 2018-08-27 1:41 PM
author: westos-dd
desc:
用户登陆程序需求:
    1. 输入用户名和密码;
    2. 判断用户名和密码是否正确? (name='root', passwd='westos')
    3. 为了防止暴力破解, 登陆仅有三次机会, 如果超过三次机会, 报错提示;

"""
for i in range(3):
    name = raw_input('用户名:')
    passwd = raw_input('密码:')
    if name == 'root' and passwd == 'westos':
        print '登陆成功'
        break
    else:
        print '登陆失败'
        print '您还剩余%d次机会' %(2-i)

# 循环执行结束后执行的代码
else:
    print '登陆次数超过三次,请等待100s后再次登陆'

 

# _*_ coding:utf-8 _*_
"""
file: for循环练习02.py
date: 2018-08-27 1:41 PM
author: westos-dd
desc:
输入两个数值:
    求两个数的最大公约数和最小公倍数.
    最小公倍数=(num1*num2)/最大公约数

"""
num1 = int(raw_input('Num1:'))
num2 = int(raw_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 = (num1 * num2)/gys
print '%s和%s的最大公约数为%s' %(num1,num2,gys)
print '%s和%s的最小公倍数为%s' %(num1,num2,lcm)

 

# _*_ coding:utf-8 _*_
"""
file: day02_str_字符串判断是否大小写或数字.py
date: 2018-08-27 2:40 PM
author: westos-dd
desc:
    
[[:digit:]]
[[:upper:]]

"""
# 判断字符串里面的每个元素是否为什么类型
# 一旦有一个元素不满足,就返回False
print '123'.isdigit()
print '123abc'.isdigit()

# title:标题 判断某个字符串是否为标题(第一个首字母大写,其余字母小写)
print 'Hello'.istitle()
print 'HeLlo'.istitle()

print 'hello'.upper()
print 'hello'.islower()
print 'HELLO'.lower()
print 'HELLO'.isupper()
print 'hello'.isalnum()
print '123'.isalpha()
print 'qqq'.isalpha()

 

# _*_ coding:utf-8 _*_
"""
file: day02_str_字符串开头和结尾匹配.py
date: 2018-08-27 2:39 PM
author: westos-dd
desc:
    

"""
s = 'hello.jpg'
# 找出字符串是否以XXX结尾
print s.endswith('.png')

url1 = 'http://www.baidu.com'
url2 = 'file:///mnt'

#找出字符串是否是以xxx开头的

print url1.startswith('http://')
print url2.startswith('f')

 

# _*_ coding:utf-8 _*_
"""
file: day02_str_字符串的分离和连接.py
date: 2018-08-27 4:45 PM
author: westos-dd
desc:
    

"""
# split对于字符串进行分离,分割符为'.'
s = '172.25.254.250'
s1 = s.split('.')
print s1

date = '2018-8-27'
date1 = date.split('-')
print date1
# 连接
print ''.join(date1)
print '/'.join(date1)

print '/'.join('hello')

 

# _*_ coding:utf-8 _*_
"""
file: day02_str_字符串的定义方式.py
date: 2018-08-27 2:37 PM
author: westos-dd
desc:
    

"""
a = "hello"
b = 'westos'
c = "what's up"
d = """
    用户管理
1.添加用户
2.删除用户
3.显示用户
"""
print a
print b
print c
print d

 

# _*_ coding:utf-8 _*_
"""
file: day02_str_字符串的搜索和替换.py
date: 2018-08-27 4:20 PM
author: westos-dd
desc:
    

"""
s = 'hello world'
print len(s)

# find找到字符串 并返回最小的索引
print s.find('hello')
print s.find('world')

print s.replace('hello','westos')

# _*_ coding:utf-8 _*_
"""
file: day02_str_字符串的特性.py
date: 2018-08-27 2:37 PM
author: westos-dd
desc:
    

"""
# 索引:0,1,2,3,4 索引值是从0开始
s = 'hello'
print s[0]
print s[1]

# 切片
print s[0:3]  # 切片的规则:s[start:end:step] 从start开始到end-1结束,步长:step
print s[0:4:2]


# 显示所有字符
print s[:]
# 显示前3个字符
print s[:3]
# 对字符串倒叙输出
print s[::-1]
# 除了第一个字符以外,其他全部显示
print s[1:]

# 重复
print s * 10

# 连接
print 'hello ' + 'world'

# 成员操作符
print 'q' in s
print 'he' in s
print 'aa' in s

 

# _*_ coding:utf-8 _*_
"""
file: day02_str_字符串的统计.py
date: 2018-08-27 4:24 PM
author: westos-dd
desc:
    

"""
print 'helloooo'.count('o')

# _*_ coding:utf-8 _*_
"""
file: day02_str_练习01.py
date: 2018-08-27 3:01 PM
author: westos-dd
desc:
输入一行字符,统计其中有多少个单词,每两个单词之间以空格隔开。
如输入: This is a c++ program. 输出:There are 5 words in the line.

"""
a = raw_input('请输入一行英国字符:')
li = a.split()
b = len(li)
print 'There are %d words in the line' % b

 

# _*_ coding:utf-8 _*_
"""
file: day02_str_练习02.py
date: 2018-08-27 3:02 PM
author: westos-dd
desc:
 给出一个字符串,在程序中赋初值为一个句子,例如"he threw three free throws",
 自编函数完成下面的功能:
    1)求出字符列表中字符的个数(对于例句,输出为26)

"""
a = raw_input('请输入一行字符:')
b = len(a)
print '%d' % b

 

# _*_ coding:utf-8 _*_
"""
file: day02_str_练习03.py
date: 2018-08-27 3:06 PM
author: westos-dd
desc:
给定一个字符串来代表一个学生的出勤纪录,这个纪录仅包含以下三个字符:
'A' : Absent,缺勤
'L' : Late,迟到
'P' : Present,到场
如果一个学生的出勤纪录中不超过一个'A'(缺勤)并且不超过两个连续的'L'(迟到),
那么这个学生会被奖赏。
你需要根据这个学生的出勤纪录判断他是否会被奖赏。
示例 1:
输入: "PPALLP"
输出: True
示例 2:
输入: "PPALLL"
输出: False

"""
s = raw_input()
if s.count('A') <= 1 and s.count('LLL') ==0:
    print True
else:
    print False
# print s.count('A') <=1 and s.count('LLL') ==0

 

# _*_ coding:utf-8 _*_
"""
file: day02_str_练习04.py
date: 2018-08-27 4:12 PM
author: westos-dd
desc:
    

"""
n = int(raw_input('Num:'))
for i in range(1,n):
    print ('*' * i).center(n,'/')
for i in range(n,0,-1):
    print ('*' * i).center(n,'/')

# _*_ coding:utf-8 _*_
"""
file: str_练习_判断变量名是否合法.py
date: 2018-08-27 2:03 PM
author: westos-dd
desc:
 变量名是否合法?
# #
# # 变量名可以由字母,数字或者下划线组成;
# # 变量名只能以字母或者下划线开头;
#
# s = "hello@"
#
# 1. 判断变量名的第一个元素是否为字母或者下划线; s[0]
# 2. 如果第一个元素符合条件, 判断除了第一个元素的其他元素;s[1:]

"""
while True:
    s = raw_input('变量名:')
    if s == 'exit':
        print '欢迎再次使用'
        break
    if s[0].isalpha() or s[0] == '_':
        for i in s[1:]:
            if not (i.isalnum() or i == '_'):
                print '%s变量名不合法 ' % s
                break
        else:
            print '%s 变量名合法' % s
    else:
        print '%s变量名不合法' % s

 

 

# _*_ coding:utf-8 _*_
"""
file: str_练习_回文数判断.py
date: 2018-08-27 2:02 PM
author: westos-dd
desc:
示例 1:
        输入: 121
        输出: true
示例 2:
        输入: -121
        输出: false
        解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
示例 3:
        输入: 10
        输出: false
        解释: 从右向左读, 为 01 。因此它不是一个回文数。

"""
num = raw_input('Num:')
if num == num[::-1]:
    print '这是一个回文数'
else:
    print '这不是一个回文数'

 

file: str_练习_小米笔试题.py
date: 2018-08-27 2:03 PM
author: westos-dd
desc:
(2017-小米-句子反转)
- 题目描述:
> 给定一个句子(只包含字母和空格), 将句子中的单词位置反转,单词用空格分割, 单词之间只有一个空格,前>后没有空格。
比如: (1) “hello xiao mi”-> “mi xiao hello”
- 输入描述:
> 输入数据有多组,每组占一行,包含一个句子(句子长度小于1000个字符)
- 输出描述:
> 对于每个测试示例,要求输出句子中单词反转后形成的句子

- 示例1:

```
- 输入
    hello xiao mi
- 输出
    mi xiao hello


"""
li = raw_input().split()
print ' '.join(li[::-1])

 

随机输出以下符号

# import random
# op = ['+','-','*','/']
# s = random.choice(op)
# print s

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值