一、判断表达式: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("你猜的太小啦~")
你会发现,这个程序运行有些问题,程序每次运行我只能猜一次年龄。如果我们想猜多次呢?
二、for 循环
最简单的for循环示例:
#liuhao #打印 0-9 for i in range(10): print(i) #输出: 0 1 2 3 4 5 6 7 8 9
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
三、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
四、字符串操作:特性不可修改
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())
测试结果
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
原文:http://www.cnblogs.com/NoSong/p/6294507.html