python基础(二)

文章目录

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


语句

1.pass语句

通常用来填充语法空白。

2.选择语句

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

print("后续逻辑")

调试(重要)
让程序中断,逐语句执行。
目的是:1、审查程序运行过程中变量取值 2、审查程序运行的流程
步骤:
1、加断点
python基础(二)_第1张图片
2、调试运行
python基础(二)_第2张图片
3、执行一行 F8
4、停止 Ctrl+F2
【pycharm调试问题与解决】:Connection to Python debugger failed soket closed
调试失败,在界面左下方出现:“Connection to Python debugger failed soket closed”,如下图所示。
在这里插入图片描述解决方案:
第一步:
python基础(二)_第3张图片
第二步:
python基础(二)_第4张图片
练习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_num
if 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 = num2
if num3 > max:
    max = num3
if num4 > max:
    max = num4
print(max)

运行结果:
请输入数字15
请输入数字28
请输入数字32
请输入数字43
8

练习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天")

运行结果:
请输入月份:4
30天
请输入月份∶4
30

知识点补充:

"""
    真值表达式
        if 数据:
            语句
             本质就是使用bool函数操作数据
    条件表达式
"""

#1. 真值表达式
if 100:
    # if bool (100):
    print("真值")

if 0:
    print(1)
else:
    print(2)
print(3)
运行结果是:
2
3

str_input = input("请输入∶")
if str_input:
    print("输入的字符串不是空的")

#2.条件表达式:有选择性的为变量进行赋值
sex =None
if input("请输入性别:") =="男":
    sex = 1
else:
    sex = 0
print(sex)

# 另一种表达:
sex =1 if input("请输入性别:") =="男" else 0
print(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 = 0
while 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 = 0
while count < 6:
    print(count)
    count += 1

count = 2
while count < 8:
    print(count)
    count += 1


count = 0
while count < 4:
    print(count*2)
    count += 1
#或者:
 count =0
while 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 ** 2
if 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 + 1
while 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.01
count = 0
while  thickness  <= 8844.43 * 1000 :
    count += 1
    thickness *= 2
print(count)

运行结果:
30

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

#随机数工具(在开头写一次)
import random
#产生一个随机数
random_number = random.randint(1, 100)
count = 0
guess_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 random
random_number = random.randint(1, 100)
count = 0
while 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 random
random_number = random.randint(1, 100)
count = 0
while 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 =0
while 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 = 0
for num in range(1,101):
    sum += num
print(sum)

sum = 0
for num in range(2,101,2):
    sum += num
print(sum)

sum = 0
for num in range(10,37):
    sum += num
print(sum)

运算结果:
5050
2550
621

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

import random
score = 0
for 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 += 10
print("总分是"+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 = 0
for item in range(1,101):
    # 满足条件则累加
    if item % 5 == 0:
        sum_value += item
print (sum_value)
# 或者:
sum_value = 0
for item in range( 1,101):
# 不满足条件则跳过本次循环,继续下次循环
    if item % 5 != 0:
        continue
    sum_value += item
print(sum_value)

运行结果:
1050

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

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

你可能感兴趣的:(python基础,python)