循环语句whlie 的使用:
count = 1 sum = 0 while count < 101: sum = sum + count count = count + 1 print(sum)
字符串(str):python中用引号引起来的都是str,str是可以相加的,str可以相乘:str*int
a = '明天' b = '美好' c = a + b print(c) print('明天' + '会' + '跟好') print('美好' * 8)
用户交互:input
name = input('请输入姓名') age = input('请输入年龄') print('你的姓名是:' + name, '你的年龄是:' + age)
流程控制语句 if 的使用:
单个:
a = input('输入一个数:') b = input('输入一个数:') if a > b: print('正确') else: print('错误')
多个:
a = int(input('输入分数:')) if a > 90: print('优秀') elif a > 80: print('良好 ') elif a > 60: print('差') elif a > 30: print('很差') else:print('非常差')
name = input('输入姓名') age = input('输入年龄') if name == '小明': if age== '18': print('找到了') else: print('重名') else: print('完全不是') #代码对齐,才能分级
格式化输出(s表示字符串,d(digit)表示数字):
name = input('请输入姓名:') age = int(input('请输入年龄:')) height = int(input('请输入身高:')) introduce = '我叫%s, 今年%d岁 身高是%s' %(name,age,height) # 要按顺序 introduce = '我叫%s, 今年%d岁 身高是%s 学习进度为5%%' %(name,age,height) #如果要在格式化输出中间用%来表示其他意思,需要再加个% print(introduce)
格式化输出的例子(
# -------- info of Alex Li --------
# Name : Alex Li
# age : 22
# job : Teacher
# Hobbie : run
# -------- end --------)
name = input('请输入你的名字:') age = int(input('请输入你的年龄:')) job = input('请输入你的工作:') hobbie = input('请输入你的爱好:') content = ''' -------- info of %s -------- Name : %s age : %d job : %s Hobbie : %s -------- end --------''' %(name,name,age,job,hobbie) print(content)
逻辑运算中优先级:() > not > and > or
print(not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7< 6) # 如果是: x or y,当x为非0(真)时,则返回x,否则返回y(and 时相反的,当x为真时,返回y,否则返回x) print(0 or 3) print(4 or 5) print(5 or 0) print(8 and 7) print(0 and 5) print(0 or 4 and 3 or 2) print(1 > 2 and 3 or 4 and 3 < 2) # 当bool--->int时,只要是非0就转化为true ,只有0才会转化为false print(bool(5)) print(bool(-10)) print(bool(0)) # 当int--->bool时, true只能转化为1,false只能转化为0 print(int(True)) print(int(False)) print(2 or 1 < 3 and 2)
课外作业:
从1+..+100
# 方法一 count = 1 sum = 0 while count < 101: sum = sum + count count = count + 1 print(sum) # 方法二 count = 1 sum = 0 while count >0: sum = sum + count count = count + 1 if count ==101: break print(sum)
输出1-100的奇数:
# 方法1 count = 0 while count < 101: if count % 2 == 1: print(count) count = count + 1 # 方法二 count = 1 while count < 101: print(count) count += 2
输出1-100的偶数,和上面方法一样
# 方法一 count = -1 while count <= 99: count = count + 1 if count % 2 == 0: print(count) # 方法二 count = 0 while count < 101: print(count) count += 2
输出1 2 3 4 5 6 8 9 10
count = 0 while count < 10: count += 1 # count = count + 1 if count == 7: print(' ') else: print(count) # 扩展内容:输出1 2 3 4 5 6 8 9 10 # 第一种方法,用continue count = 0 while count < 10: count += 1 # count = count + 1 if count == 7: continue print(count) # 第二种方法,用pass,意思是直接跳过 count = 0 while count < 10: count += 1 # count = count + 1 if count == 7: pass else: print(count)
算出1-2+3-4+...99所有数的和:
count = 1 sum = 0 while count < 100: if count % 2 == 0: sum = sum - count else: sum = sum + count count += 1 print(sum)
写一个用户登录(三次重试机会):
i = 0 while i < 3: username = input('请输入用户名') password = int(input('请输入密码')) if username == '小明' and password == 123: print('登录成功') break else: print('登录失败,请重试') i += 1
随机输入三个数字,求出最大值和最小值:
a=int(input('输入a:')) b=int(input('输入b:')) c=int(input('输入c:')) max=a if a>b else b max=c if c>max else max min=a if a<b else b min=c if c<max else min print(max,min)
求一个一元二次方程的根(扩展知识):
import math a=int(input('输入a的值: ')) b=int(input('输入b的值: ')) c=int(input('输入c的值: ')) delta=b**2-4*a*c if a==0: print('a=0,方程不成立') elif delta<0: print('无解') elif delta==0: print('有两个相等的实数根,实数根为: ') print(b*(-1)/(a*2)) else: print('方程有两个根,分别为:') x1 = (-1*b+math.sqrt(delta))/2*a x2 = (-1*b-math.sqrt(delta))/2*a print(x1)#想要不换行加上 end='' print(x2)
结合上面优化登录登录界面
username = 'jack' password = '123' i = 0 while i < 3: name = input('请输入登录名:') pwd = input('请输入密码:') if name == username and pwd == password: print('登录成功') break else: print('登录失败,你还有%d次机会' % (2-i)) if (2-i) == 0: result = input('你是否还想试一下?是的话请输入Yes:') if result == 'Yes': print('要不要脸你') else: print('你的机会已经用完') i += 1