> 文档中心 > python基础(二)

python基础(二)

文章目录

  • 语句
    • 1.pass语句
    • 2.选择语句
    • 3.循环语句

语句

1.pass语句

通常用来填充语法空白。

2.选择语句

"""    选择语句"""# 注意缩进sex = input("请输入性别∶")if sex == "女":    print("您好,女士!")elif sex == "男":    print("您好,先生!")else:    print("性别未知")print("后续逻辑")

调试(重要)
让程序中断,逐语句执行。
目的是:1、审查程序运行过程中变量取值 2、审查程序运行的流程
步骤:
1、加断点
在这里插入图片描述
2、调试运行
在这里插入图片描述
3、执行一行 F8
4、停止 Ctrl+F2
【pycharm调试问题与解决】:Connection to Python debugger failed soket closed
调试失败,在界面左下方出现:“Connection to Python debugger failed soket closed”,如下图所示。
在这里插入图片描述解决方案:
第一步:
在这里插入图片描述
第二步:
在这里插入图片描述
练习1:python基础(一)练习1的改编,当钱不够时,提示"金额不足”。钱够时,提示"应找回”,之后调试程序。

str_goods_price = input("请输入商品单价:")str_goods_num = input("请输入商品数量:")str_goods_totalprice = input("请输入金额:")float_goods_price = float(str_goods_price)int_goods_num = int(str_goods_num)float_goods_totalprice = float(str_goods_totalprice)change = float_goods_totalprice - float_goods_price * int_goods_numif change < 0:    print("金额不足")else:    print("找零:"+str(change))

练习2:在控制台中获取一个季度(春夏秋冬),显示相应的月份。【春 --> 1月2月3月、夏 --> 4月5月6月、秋 --> 7月8月9月、冬 --> 10月11月12月】

quarter =  input("请输入季度:")if quarter=="春":    print("1月2月3月")elif quarter=="夏":    print("4月5月6月")elif quarter == "秋":    print("7月8月9月")elif quarter == "冬":    print("10月11月12月")#如果前面条件满足﹐后续条件不再判断。

练习3:在控制台中录入一个数字,再录入一个运算符(+ - * /),最后录入一个数字。根据运算符,计算两个数字。【如果运算符不是加减乘除,则提示“运算符有误”】

num1 = int(input("请输入数字1:"))operator = input("请输入运算符:")num2 = int(input("请输入数字2:"))if operator=="+":    print(num1+ num2)elif operator=="-":    print(num1- num2)elif operator == "*":    print(num1* num2)elif operator == "/":    print( num1/ num2)else:    print("运算符输入有误")

练习4:在控制台中分别录入4个数字,打印最大的数字。

num1 = int(input("请输入数字1:"))num2 = int(input("请输入数字2:"))num3 = int(input("请输入数字3:"))num4 = int(input("请输入数字4:"))#假设第一个是最大值max = num1#以此与后面进行比较if num2 > max :    # 发现更大的,则替换假设的。    max = num2if num3 > max:    max = num3if num4 > max:    max = num4print(max)运行结果:请输入数字15请输入数字28请输入数字32请输入数字438

练习5:在控制台中录入一个成绩,判断等级(优秀╱良好╱及格╱不及格/输入有误)。

# 方法一:grade = float(input("请输入成绩:"))if grade >= 90 and grade <= 100:    print("优秀")elif grade >= 80 and grade < 90:    print("良好")elif grade >=60 and grade < 80:    print("及格")elif grade < 60 and grade >= 0:    print("不及格")else:    print("输入有误")#方法二:python支持grade = float(input("请输入成绩:"))if  90 <= grade <= 100:    print("优秀")elif 80 <= grade < 90:    print("良好")elif 60 <= grade < 80:    print("及格")elif 0 <= grade < 60:    print("不及格")else:    print("输入有误")#方法三:grade = float(input("请输入成绩:"))if  grade > 100 or grade <0:    print("输入有误")elif   grade >= 90:    print("优秀")elif grade >= 80:    print("良好")elif  grade >= 60:    print("及格")else:    print("不及格")运行结果:请输入成绩:56不及格请输入成绩:56不及格请输入成绩:56不及格

练习6:在控制台中获取一个月份,打印天数或者提示"输入有误”。【1 3 5 7 8 10 12–>31天,4 6 9 11 -->30天, 2 -->28天】

# 方法一:month =int(input("请输入月份:"))if month==1 or month==3 or month==5 or month==7 or month==8 or month==10 or month==12:    print("31天")elif  month==4 or month==6 or month==9 or month==11:    print("30天")elif month == 2:    print("28天")else:    print("输入有误")# 方法二:#注意:python字符串比大小有含义,后面会涉及month = int(input("请输入月份∶"))if month < 1 or month > 12:    print("输入有误")elif month == 2:    print("28天")elif month == 4 or month == 6 or month == 9 or month == 11:    print("30天")else:    print(" 31天")运行结果:请输入月份:430天请输入月份∶430

知识点补充:

"""    真值表达式 if 数据:     语句      本质就是使用bool函数操作数据    条件表达式"""#1. 真值表达式if 100:    # if bool (100):    print("真值")if 0:    print(1)else:    print(2)print(3)运行结果是:23str_input = input("请输入∶")if str_input:    print("输入的字符串不是空的")#2.条件表达式:有选择性的为变量进行赋值sex =Noneif input("请输入性别:") =="男":    sex = 1else:    sex = 0print(sex)# 另一种表达:sex =1 if input("请输入性别:") =="男" else 0print(sex)

练习1:在控制台中获取一个整数,如果是偶数为变量state赋值"偶数",否则赋值"奇数”。

num1 = int(input("请输入整数:"))state = "奇数" if num1 % 2  else "偶数"print(state)

练习2:在控制台中录入一个年份,如果是闰年,给变量day赋值29,否则赋值28。

#保持代码可读性year = int(input("请输入年份:"))day = 29 if  year % 4 == 0 and year % 100 != 0  or  year % 400 == 0 else 28 print(day)#不建议使用下面这种year = int(input("请输入年份:"))day = 29 if not year % 4 and year % 100 or not year % 400  else 28 print(day)

3.循环语句

"""    循环语句 while 条件: 循环体"""# 死循环:循环条件永玩是满足的。while True:    usd = int(input("请输入美元∶"))    print(usd * 6.9)    if input("输入q键退出:")=="q": break

练习:在控制台中获取一个季度(春夏秋冬),显示相应的月份。循环执行,按e键退出,并进行调试。

while True:    quarter =  input("请输入季度:")    if quarter=="春": print("1月2月3月")    elif quarter=="夏": print("4月5月6月")    elif quarter == "秋": print("7月8月9月")    elif quarter == "冬": print("10月11月12月")    if input("按e键退出")=="e": break
"""    while 计数"""# 需求:执行三次count = 0while count < 3: #0 1 2    count += 1    usd = int( input("请输入美元∶"))    print(usd * 6.9)

练习:
在控制台中输出0 1 2 3 4 5
在控制台中输出2 3 4 5 6 7
在控制台中输出0 2 4 6

count = 0while count < 6:    print(count)    count += 1count = 2while count < 8:    print(count)    count += 1count = 0while count < 4:    print(count*2)    count += 1#或者: count =0while count <=6:    print(count)    count += 2

练习1:在控制台中获取月份,显示季度或者提示月份错误。

month = int(input("请输入月份:"))if month < 0 and month > 12:    print("月份错误")elif month >= 10 :    print("冬")elif month >= 7 :    print("秋")elif month >= 4 :    print("夏")else:    print("春")

练习2:在控制台中获取年龄,要求如下:
如果小于0岁,打印输入有误
如果一个人的年龄小于2岁,就打印一条消息,指出他是婴儿。
如果一个人的年龄为2(含)~13岁,就打印一条消息,指出他是儿童。
如果一个人的年龄为13(含)~20岁,就打印一条消息,指出他是青少年。
如果一个人的年龄为20(含)~65岁,就打印一条消息,指出他是成年人。
如果一个人的年龄超过65(含)岁~150岁,就打印一条消息,指出他是老年人。
150岁以上,打印"那不可能"。

age = int(input("请输入年龄:"))if age < 0 :    print("打印输入有误")elif age >= 150 :    print("那不可能")elif age >= 65 :    print("他是老年人")elif age >= 20 :    print("他是成年人")elif age >= 13 :    print("他是青少年")elif age >= 2 :    print("他是儿童")else:    print("他是婴儿")

练习3:根据身高体重,参照BMI,返回身体状况。
BMI:用体重干克数除以身高米数的平方得出的数字,注意体重输入干克数,身高输入米
中国参考标准
体重过低BMI<18.5
正常范围18.5≤BMI<24
超重24≤BMI<28
Ⅰ度肥胖28≤BMI<30
Ⅱ度肥胖30≤BMI<40
Ⅲ度肥胖BMI≥40.0

weight = float(input("请输入体重:"))height = float(input("请输入身高:"))bmi =  weight / height ** 2if bmi < 0 :    print("不可能")elif bmi >= 40 :    print("Ⅲ度肥胖")elif bmi >= 30 :    print("Ⅱ度肥胖")elif bmi >= 28 :    print("Ⅰ度肥胖")elif bmi >= 24 :    print("超重")elif bmi >= 18.5 :    print("正常范围")else:    print("体重过低")

练习4:在控制台中,获取一个开始值,一个结束值,将中间的数字打印出来。
例如∶开始值3,结束值10,打印 4 5 6 7 8 9

start = int(input("请输入开始值:"))end = int(input("请输入结束值:"))count = start + 1while count < end  :    print(count)    count += 1#或者:start = int(input("请输入开始值:"))end = int(input("请输入结束值:"))while start < end - 1:    start += 1    print(start)

练习5:一张纸的厚度是0.01毫米,请计算对折多少次,超过珠穆朗玛峰8844.43米。

thickness = 0.01count = 0while  thickness  <= 8844.43 * 1000 :    count += 1    thickness *= 2print(count)运行结果:30

练习6:猜数字游戏(1.0版本),游戏运行产生一个1-100之间的随机数。让玩家重复猜测,直到猜对为止。【大了,小了,猜对了﹐总共猜了多少次】

#随机数工具(在开头写一次)import random#产生一个随机数random_number = random.randint(1, 100)count = 0guess_number = int(input("请输入数字:"))while (guess_number != random_number) :    count += 1    if(guess_number > random_number) : print("大了")    else: print("小了")    guess_number = int(input("请输入数字:"))print("猜对了,总共猜了"+str(count+1)+"次")#或者:import randomrandom_number = random.randint(1, 100)count = 0while True:    count += 1    input_number = int(input("请输入数字∶"))    if input_number > random_number: print("大了")    elif input_number < random_number: print("小了")    else: print("猜对了,总共猜了" + str(count) +"次") break

练习7:猜数字游戏(2.0版本),最多猜3次,如果猜对,提示"猜对了,总共猜了?次",如果超过次数,提示“游戏失败”。

import randomrandom_number = random.randint(1, 100)count = 0while count < 3:    #三次以内    count += 1    input_number = int(input("请输入数字∶"))    if input_number > random_number: print("大了")    elif input_number < random_number: print("小了")    else: print("猜对了,总共猜了" + str(count) +"次") break #退出循环体,不会执行else语句。else:#while的条件不满足    #三次以外    print("游戏失败")

练习8:重复根据成绩判断等级,如果录入空字符串则退出程序。如果成绩录入错误次数达到3,则退出成绩并提示"成绩错误过多”。

count =0while count < 3:    str_grade = input("请输入成绩:")    if  str_grade == "": break #不会执行else语句    grade =float(str_grade)    if  grade > 100 or grade <0: print("输入有误") count += 1    elif   grade >= 90: print("优秀")    elif grade >= 80: print("良好")    elif  grade >= 60: print("及格")    else: print("不及格")else:    print("成绩错误过多")

知识点补充

"""    for:适合执行预定次数    while:适合根据条件循环执行。"""# for 变量 in 可迭代对象:# 循环体str01 = "我叫苏大强!"#item存储的是字符串中每个字符的地址for item in str01:    print(item)# 整数生成器:range(开始值,结束值,间隔),返回的数字不包含结束点# range(开始值,结束值)间隔默认为1# range(结束值),开始点默认为O# for + range:更善于执行预定次数。for item in range(1,5,1):    print(item)

练习1:
1、累加1–100的和【1+2+3+…+100】
2、累加1–100之间偶数和【2+4+6+8+…+100】
3、累加10–36之间的和

# sum用于存储累加和的变量sum = 0for num in range(1,101):    sum += numprint(sum)sum = 0for num in range(2,101,2):    sum += numprint(sum)sum = 0for num in range(10,37):    sum += numprint(sum)运算结果:50502550621

练习2:随机加法考试,随机产生两个数字(1-10) ,在控制台中获取两个数相加的结果,如果用户输入正确得10分,总共3道题,最后输出得分。

import randomscore = 0for item in range(3):    num1 = random.randint(1,10)    num2 = random.randint(1,10)    num3 = num1 + num2    num = float(input("请输入"+str(num1)+ "+"+ str(num2)+"=?:"))    if(num == num3): score += 10print("总分是"+str(score))运行结果:请输入1+6=?:7请输入4+1=?:5请输入5+9=?:44总分是20

练习3:在控制台中获取一个整数,判断是否为素数。【素数:只能被1和自身整除的正数】
思路∶排除法,使用2到当前数字之间的正数判断,如果存在被整除﹐则不是素数。如:判断9,
能否被2-8之间的数字整除,其中3可以,所以不是素数。
备注∶没有判断2以下的数字。

prime = int(input("请输入整数:"))#判断2到prime之间的数字,能否整除prime。for item in range(2,prime):    if(prime % item == 0): print("它不是素数") break #如果发现满足条件的数字﹐就不再判断后面的else:    print("它是素数")

练习4:累加1-100之间,能被5整除的数字。

sum_value = 0for item in range(1,101):    # 满足条件则累加    if item % 5 == 0: sum_value += itemprint (sum_value)# 或者:sum_value = 0for item in range( 1,101):# 不满足条件则跳过本次循环,继续下次循环    if item % 5 != 0: continue    sum_value += itemprint(sum_value)运行结果:1050

练习5:累加10-50之间个位不是2,5,9的整数。

sum = 0for item in range(10,51):    # 个位是2,5,9的整数则跳过    if(item % 10 ==2 or item % 10 == 5 or item % 10 == 9): continue    sum += itemprint(sum)