首页 > 编程语言 > 详细

python_day2

时间:2017-01-17 21:38:02      阅读:276      评论:0      收藏:0      [点我收藏+]

一、判断表达式:if...elif...else

用法:

if <条件>:

  .....

else:

  ....   

 我们先写一个简单的小程序,熟悉一下

#liuhao
#if else简单应用
#场景一、用户登录验证
import getpass
name = input("请输入用户名:")
pwd= input("请输入密码")
#使用getpass模块隐藏用户输入密码,但是pycharm不支持~
#pwd=getpass.getpass("请输入用户名")
if name==alex and pwd==123:
    print("验证通过")
else:
    print("验证失败")

场景二、猜年龄游戏

在程序里设定好你的年龄,然后启动程序让用户猜测,用户输入后,根据他的输入提示用户输入的是否正确,如果错误,提示是猜大了还是小了。

这个程序你可以先尝试自己去写一下,

技术分享
age=25
guess_age=int(input("请尝试猜一下alex的年龄~有惊喜啊!").strip())
if guess_age ==25:
    print("你好牛啊,真的猜出来了。你们是不是搞基呀?")

elif guess_age >25:
    print("你也太坏了,alex年纪有那么大吗?")

elif guess_age<25:
    print("你猜的太小啦~")
View Code

你会发现,这个程序运行有些问题,程序每次运行我只能猜一次年龄。如果我们想猜多次呢?

二、for 循环

最简单的for循环示例:

技术分享
#liuhao
#打印 0-9
for i in range(10):
    print(i)


#输出:
0
1
2
3
4
5
6
7
8
9
View Code
continue的用法:
范例1:循环打印0-9,当打印到5的时候跳过,不打印5.
#打印 0-9
for i in range(10):
    if i==5:
        continue    #跳过此次循环,进行下一次循环
    print(loop:,i)

范例2:还是这个程序,当遇到5时不进行打印,直接退出当前循环。

#打印 0-9
for i in range(10):
    if i==5:
        break    #执行退出当前循环
    print(loop:,i)

范例3:内外两层循环,进行内循环

#打印 0-9
for i in range(10):
    if i==5:
        for i in range(10):
            print("inloop:",i)
            if i ==5:
                break
        continue
    print(outloop:,i)

执行结果:

技术分享
outloop: 0
outloop: 1
outloop: 2
outloop: 3
outloop: 4
inloop: 0
inloop: 1
inloop: 2
inloop: 3
inloop: 4
inloop: 5
outloop: 6
outloop: 7
outloop: 8
outloop: 9
View Code

三、while 循环

范例1:无限循环

count=0
#这就是一个死循环,while 判断 True 就是真,每一次循环都是真
while True:
    print("就是死循环,",count)
    count+=1

范例2:循环100次,程序退出

#liuhao
count=0
while True:
    print("就是死循环,",count)
    if count== 100: #判断循环到100,执行退出
        break
    count+=1

练习题:如何实现让用户不断的猜年龄,但只给最多3次机会,再猜不对就退出程序,猜对了,直接退出。

技术分享
#liuhao
count=0
while count<3:
    age=25
    guess_age=int(input("请尝试猜一下alex的年龄~有惊喜啊!").strip())
    if guess_age ==25:
        print("你好牛啊,真的猜出来了。你们是不是搞基呀?")
        break
    elif guess_age >25:
        print("你也太坏了,alex年纪有那么大吗?")

    elif guess_age<25:
        print("你猜的太小啦~")
    count+=1
View Code

 

四、字符串操作:特性不可修改

name="my name is alex"  #设置一个字符串。
#字符串的首字母大写
print(name.capitalize())
#输出:
My name is alex
#统计字符串种单个字符‘a‘的个数
print(name.count(a))
#输出
2
#一共打印50个字符,字符串居中,字符个数不足50的位置用#补全
print(name.center(50,#))
#ljust,rjust.定义50个字符,字符串一个居左,一个居右对齐
print(name.ljust(50,*))
print(name.rjust(50,*))
#输出
#################my name is alex##################
my name is alex***********************************
***********************************my name is alex
#expandtabs()设置一个\t特殊字符,代表距离为多少个字符
a="a\tb"
#代表一个tab为30个字符的距离
print(a.expandtabs(30))    
#输出:
a                             b
#find,获取字符的位置
print(name.find("is"))    #获取is在name中的(字符位置-1),
print(name[0:name.find("is")])    #对字符进行切片
#输出:
#8
#my name 这里还发现name后面还有一个空格。
#rfind找到最后一个值得下标返回
print(alex lil.rfind(l))
#format格式化输出
a="this is {name},he is {age}"
print(a.format(name="alex",age=33))
#字典格式化输出
print(a.format_map({name:liuhao,age:23}))
#输出:
#this is alex,he is 33
#this is liuhao,he is 23

以下是str格式进行判断的函数,返回的为布尔类型

#判断字符串的结尾是不是ex,返回布尔值
print(name.endswith("ex"))
#判断是否为数字或字母。不能有特殊字符。返回布尔值
print(2222.isalnum())
#判断只为字符,返回布尔值
print("abA".isalpha())
#判断是不是一个整数,常用
print("2222".isdigit())
#判断是不是一个合法的标识符,字符和_开头
print(d77sss.isidentifier())
#判断为小写
print(a.islower())
#判断是不是每个首字母大写
print("I Am Is".istitle())
#字符串join用法,用前面的填充后面的
print("666is ".join("===="))
print(+.join([1,2,3]))
#将前面的字符,分割加入到后面
#输出
#=666is =666is =666is =
#1+2+3
#全部变小写,全部变大写
print(Alex.lower())
print(Alex.upper())
#输出
#alex
#ALEX
#去掉两边的换行符strip()
#去掉左边的换行符,lstrip#rstrip去掉右边的换行符
print(\nAlex.lstrip())
#输出
#Alex
#编码,将前面的字符进行加密。与后面的密码集进行对应。
p=str.maketrans("abcdef",123456)
print("alex li".translate(p))
#输出
#1l5x li
#replace替换,将l替换为L,只替换一个
print(alex li.replace(l,L,1))
#输出
#aLex li
#分割,将字符串分割为列表,默认为空格
print(al ex dd li l ss.split())
print(1+2+3+4.split(+))
#字符串大小写转换
print(Alex Li.swapcase())
#输出:
#[‘al‘, ‘ex‘, ‘dd‘, ‘li‘, ‘l‘, ‘ss‘]
#[‘1‘, ‘2‘, ‘3‘, ‘4‘]
#aLEX lI

全部整体脚本测试:

技术分享
#liuhao

name="my name is alex"
#首字母大写
print(name.capitalize())
#统计字符的个数
print(name.count(a))
#一共打印50个字符,不够的用#补全
print(name.center(50,#))
#ljust,rjust.定义50个字符,不够的填充
print(name.ljust(50,*))
print(name.rjust(50,*))
#设置\t距离为多少个字符
a="a\tb"
print(a.expandtabs(30))
#find,获取字符的位置
print(name.find("is"))
print(name[0:name.find("is")])
#format格式化输出
a="this is {name},he is {age}"
print(a.format(name="alex",age=33))
#字典格式化输出
print(a.format_map({name:liuhao,age:23}))
#判断结尾是不是ex,返回布尔值
print(name.endswith("ex"))
#判断是否为数字+字母。不能有特殊字符。返回布尔值
print(2222.isalnum())
#判断只为字符,
print("abA".isalpha())
#判断是不是一个整数,常用
print("2222".isdigit())
#判断是不是一个合法的标识符,字符和_开头
print(d77sss.isidentifier())
#判断为小写
print(a.islower())
#判断是不是每个首字母大写
print("I Am Is".istitle())
#字符串join用法,用前面的填充后面的
print("666is ".join("===="))
print(+.join([1,2,3]))
#全部变小写,全部变大写
print(Alex.lower())
print(Alex.upper())
#去掉左边的换行符,lstrip#rstrip去掉右边的换行符
print(\nAlex.lstrip())
print(-------)
#去掉两边的换行符strip()
#编码,
p=str.maketrans("abcdef",123456)
print("alex li".translate(p))
#replace替换,将l替换为L,只替换一个
print(alex li.replace(l,L,1))
#rfind找到最后一个值得下标返回
print(alex lil.rfind(l))
#分割,将字符串分割为列表,默认为空格
print(al ex dd li l ss.split())
print(1+2+3+4.split(+))
#字符串大小写转换
print(Alex Li.swapcase())
View Code

测试结果

技术分享
C:\Users\liuhao\AppData\Local\Programs\Python\Python35\python.exe C:/Users/liuhao/PycharmProjects/s16/day2/str_字符串函数.py
My name is alex
2
#################my name is alex##################
my name is alex***********************************
***********************************my name is alex
a                             b
8
my name 
this is alex,he is 33
this is liuhao,he is 23
True
True
True
True
True
True
True
=666is =666is =666is =
1+2+3
alex
ALEX
Alex
-------
1l5x li
aLex li
7
[al, ex, dd, li, l, ss]
[1, 2, 3, 4]
aLEX lI

Process finished with exit code 0
View Code

 

python_day2

原文:http://www.cnblogs.com/NoSong/p/6294507.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!