分支语句以及其拓展:
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循环实例:
import getpass
trycount=0
while trycount<3:
username = input("用户名:")
# passwd = input("密码") #可见密码
passwd =getpass.getpass("密码") #不可见密码
if username=="xijiao" and passwd=="redhat":
print("login ok")
continue
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(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)