分支语句以及其拓展:
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的关键字,比如: if, elif, while...字符串的索引:注意:索引值是从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)