分支语句以及其拓展,以及字符串的相关内容

分支语句以及其拓展:

if  条件表达式:

    满足表达式执行的内容

else:

    不满足表达式所执行的内容

三目运算符在python中的转换练习:

三目运算符:print a>b?a:b

注意:?:在python中不能使用

a=5

b=7

print(a if a>b else b)

当其有多个条件表达式时,可以按照下面格式来写:

if xxxx:

     pass

elif xxxx:

     pass

elif xxxx:

     pass

else:

     pass

 
 
#求平均成绩,并且打印出:姓名的等级为"ABCD"

stuname=input("姓名:")

chinese=float(input("语文成绩:"))

math=float(input("数学成绩:"))

english=float(input("英语成绩:"))

avgscore=float((chinese+math+english)/3)

if 90<avgscore<=100:

  print("%s的等级为%s"%(stuname,'A'))

elif 80<avgscore<=90:

  print("%s的等级为%s"%(stuname,'B'))

elif 70<avgscore<=80:

  print("%s的等级为%s"%(stuname,'C'))

elif 0<avgscore<=70:

  print("%s的等级为%s"%(stuname,'D'))

else

  print("%s的成绩是无效的"%(stuname))

循环语句:主要分为while循环和for循环

在循环语句中:跳出循环有两种方法:

*break:跳出整个循环

*continue:跳出当前循环,继续执行

while循环实例:

#while 循环实例:用户输入用户名和密码

import getpasstrycount=0while trycount<3: username = input("用户名:")# passwd = input("密码") #可见密码 passwd =getpass.getpass("密码") #不可见密码 if username=="xijiao" and passwd=="redhat":print("login ok")break else: trycount += 1 if trycount>=3:

print("尝试次数超过3次")

 
 
continue实例:
trycount = 0 while trycount < 10: trycount += 1 if trycount== 2: continue print(trycount)
if while 后面必须跟布尔类型。如果不是布尔类型,必须将其转换为bool类型:
例如: print(bool( "hello)) 会打印出True print(bool( "")) 会打印出false import random #系统随机生成一个数字 sysnum = random.randint( 1, 100) guesscount= 0 while guesscount< 5: guessnum=int(input( "猜测数字:")) guesscount+= 1 if guessnum>sysnum: print ( "太大了") elif guessnum<sysnum: print ( "太小了") else: print ( "恭喜中奖") break else: print ( "尝试次数超过5次") for i in range( 5): print (i) else: print ( "结束执行")
 
 
range的用法:
range(end): 0~end- 1 range(start, end): start~end- 1 range(start, end, step): start~end- 1, 步长为step range( 1, 10, 2) # 1, 1+2, 1+2+2,
 
 

求两个数的最小公倍数和最大公约数:

num1=int(input( "数字1:")) num2=int(input( "数字2:")) minnum=min(num1,num2) for i in range( 1,minnum+ 1): if num1%i == 0 and num2%i== 0: res=i lcm=int((num1*num2)/res) print( "%s和%s的最大公约数为:%s"%(num1,num2,res)) print( "%s和%s的最小公倍数为:%s"%(num1,num2,lcm))

求1-1000之间所有数的和

num_sum = 0 for i in range( 1, 1001): num_sum+=i print(num_sum)
变量名的命名规则
变量名可以由字母,数字或者下划线组成;只能以字母和下划线开头;它不能是python的关键字,比如: ifelifwhile...
字符串的索引:注意:索引值是从0开始的
s= "hello" print(s[ 0]) print(s[ 3]) print(s[- 1])

字符串的切片:切片规则为s[start:end:step],意思就是:从start开始到end-1结束,步长为step step为正数时,从左往右计算,若为负数,则从右往左计算,例如:

s= "hello" print (s[ 0: 4: 2]) #打印出hl print (s[ 1: 5: 2]) #打印出el print (s[ 0: 5:- 1]) #?为何打印不出来 print (s[::- 1]) #打印出olleh,所以[::-1]表示字符串的倒序输出
字符串的重复:
s= "hello" print(s* 5) #打印出hellohellohellohellohello,即表示输出字符串*5
#字符串的连接
print( "我是习姣,"+ "我喜欢蓝色") #打印出我是习姣,我喜欢蓝色,表示n个字符串是可以连接起来的

成员操作符 

s="lance",in,not in

s="lance"
print ('nc'in s)      #True
print ('aa'not in s)  #True
print ('e' in s)      #True

回文数的判断

num=input( 'nume:') #?为什么num不用将其定义为int num=int(input('nume:')为什么是错误的? print(num==num[::- 1]) num=int(input( 'numb:')) if num< 0 or (num!= 0 and num% 10== 0): print( False) elif num== 0 and 0<num< 10: print( True) else: back = 0 while num>back: back=back* 10+num% 10 num//= 10 print (num == back or num==back// 10)

字符串的开头与结尾匹配

s= "hello xiaomi" print (s.endswith(( 'xiaomi'))) #?为何在'xiaomi'添加两个括号呢? print (s.startswith(( 'h'))) #?为何在'h'添加两个括号呢?只添加一个括号运行结果是一样的

#字符串的判断

print ( "1237".isdigit()) #判断其是否为数字 print ( "124jiao".isdigit()) print ( "Hello".isupper()) #判断其是否为大写 print ( "HELLO".isupper()) print ( "Hello".istitle()) #判断其是否为标题,第一个字母大写,其他为小写时为标题 print ( "hello".islower()) #判断其是否为小写 print ( "105".isnumeric()) #判断其是否可以转换为数字 print ( "qq618".isalnum()) #判断其是否有字母和数字

判断变量名是否合法

var= "hello1" if var[ 0]== "_" or var[ 0].isalpha(): for char in var[ 1:]: if char.isalnum() or char == "_": continue else: print ( '变量名%s不合法'%(var)) break else: print ( '变量名%s合法'%(var)) else: print ( "变量名不合法:第一个字符错误!")

字符串的搜索和替换

s = "I love china very much" print (s.find( "love")) #找到子串,并返回最小的索引值,其中空格也占据字符位置,输出值为2 print (s.find( "e")) #输出值为5 print (s.rfind( "ch")) #找到子串,并返回到最大的索引值,输出值为20 print (s.replace( "very much", "too")) #将字符串中的very much替换为too,输出为I love china too
 
 
删除字符串中不需要的子符(主要应用于读取以及清洗数据中)

#主要有strip,lstrip,rstrip,replace等几种方法

s = "\t \n hello xijiao \n good lucky " print(s.strip()) #strip:删除字符串左边和右边的空格(广义的空格,包括\t,\n) print (s.lstrip()) #lstrip:删除字符串左边的空格 print (s.rstrip()) #rstrip:删除字符串右边的空格 print (s.replace( " ", "")) #删除中间的空格,通过replace间接实现
字符串的对齐

主要有ljust,rjust,center,format几种方式

print( "我是中国人".center( 20)) print ( "我是中国人".center( 20, "*")) print ( "我是中国人".ljust( 20, "*")) print ( "我是中国人".rjust( 20, "*")) print ( "hello %s"%( 'world')) print ( "{0} {1} {1} {1}".format( 1, 2))
字符串的统计 用count来表达
print ( "hello".count( 'l')) print ( "hello11".count( '11'))

字符串统计的练习:根据出勤记录判断是否被奖赏

s=input() if s.count( 'A')<= 1 and s.count( "LLl")== 0: print( "被奖赏") else: print ( "不被奖赏")
字符串的分离与连接
s= "202.200.112.210" s1=s.split( ".") #split对于字符串进行分离,分隔符为"." print (s1[::- 1]) #倒叙显示 print (s1) date = '2018-4-24' date1=date.split( "-") date2=date1[::- 1] print ( "date1:%s"%(date1)) print ( "date2:%s"%(date2)) print( "/".join(date1)) print( "/".join(date2))
字符串的内置方法
s1= "hello" s2= "xijiao" for i in zip(s1,s2): print (i) for i,j in enumerate( "hello"): #枚举 print(i,j)

 
 





猜你喜欢

转载自blog.csdn.net/xijiao_jiao/article/details/80042444
今日推荐