In [1]:
#3.由用户输入几个整数,打印最大值,最小值、平均值。
n = int(input('请输入一个整数,回车结束'))
max_n = n
min_n = n
avg_n = n
i = True
while True:
    n = input('请输入一个整数,回车结束,输入‘q’为退出')
    if n == 'q':
        break
    n = int(n)
    avg_n = (avg_n + n)/2
    if n > max_n:
        max_n = n
    if n < min_n:
        min_n = n
print (max_n , min_n , avg_n , sep = '\n')


请输入一个整数,回车结束6
请输入一个整数,回车结束,输入‘q’为退出6
请输入一个整数,回车结束,输入‘q’为退出6
请输入一个整数,回车结束,输入‘q’为退出q
6
6
6.0

In [2]:
#3.6 实践与练习
#练习 1:写程序,可由键盘读入用户姓名例如Mr. right,让用户输入出生的月份与日期,判断用户星座,
#假设用户是金牛座,则输出,Mr. right,你是非常有性格的金牛座!。
name = input('请输入你的姓名,回车结束  ')
birthday_month = int(input('请输入你生日的月份,回车结束  '))
birthday_day = int(input('请输入你生日的日号,回车结束  '))
if birthday_month > 12 or birthday_month < 1 or birthday_day < 1 or birthday_day > 31:
    print ('你输入的数字非法!')
if (birthday_month == 3 and 21<=birthday_day<=31) or (birthday_month == 4 and 1<=birthday_day<=19):
    print (name,'你是非常有性格的白羊座!',sep = ',')
elif (birthday_month == 4 and 20<=birthday_day<=30) or (birthday_month == 5 and 1<=birthday_day<=20):
    print (name,'你是非常有性格的金牛座!',sep = ',')
elif (birthday_month == 5 and 21<=birthday_day<=31) or (birthday_month == 6 and 1<=birthday_day<=21):
    print (name,'你是非常有性格的双子座!',sep = ',')
elif (birthday_month == 6 and 22<=birthday_day<=30) or (birthday_month == 7 and 1<=birthday_day<=22):
    print (name,'你是非常有性格的巨蟹座!',sep = ',')
elif (birthday_month == 7 and 23<=birthday_day<=31) or (birthday_month == 8 and 1<=birthday_day<=22):
    print (name,'你是非常有性格的狮子座!',sep = ',')
elif (birthday_month == 8 and 23<=birthday_day<=31) or (birthday_month == 9 and 1<=birthday_day<=22):
    print (name,'你是非常有性格的处女座!',sep = ',')
elif (birthday_month == 9 and 23<=birthday_day<=30) or (birthday_month == 10 and 1<=birthday_day<=23):
    print (name,'你是非常有性格的天秤座!',sep = ',')
elif (birthday_month == 10 and 24<=birthday_day<=31) or (birthday_month == 11 and 1<=birthday_day<=22):
    print (name,'你是非常有性格的天蝎座!',sep = ',')
elif (birthday_month == 11 and 23<=birthday_day<=30) or (birthday_month == 12 and 1<=birthday_day<=21):
    print (name,'你是非常有性格的射手座!',sep = ',')
elif (birthday_month == 12 and 22<=birthday_day<=31) or (birthday_month == 1 and 1<=birthday_day<=19):
    print (name,'你是非常有性格的魔蝎座!',sep = ',')
elif (birthday_month == 1 and 20<=birthday_day<=31) or (birthday_month == 2 and 1<=birthday_day<=18):
    print (name,'你是非常有性格的水瓶座!',sep = ',')
elif (birthday_month == 2 and 19<=birthday_day<=28) or (birthday_month == 3 and 1<=birthday_day<=20):
    print (name,'你是非常有性格的双鱼座!',sep = ',')


请输入你的姓名,回车结束  lll
请输入你生日的月份,回车结束  12
请输入你生日的日号,回车结束  12
lll,你是非常有性格的射手座!

In [3]:
#练习 2:写程序,可由键盘读入两个整数m与n(n不等于0),询问用户意图,如果要求和则计算从m到n的和输出,
#如果要乘积则计算从m到n的积并输出,如果要求余数则计算m除以n的余数的值并输出,否则则计算m整除n的值并输出。
n = int(input('请输入第一个整数,回车结束  '))
m = int(input('请输入第二个整数,回车结束  '))
question = int(input('如果你想求和请输入1,如果你想求和请输入2,如果你想求和请输入3,输入其他数字默认整除,回车结束'))
if question == 1:
    print ('add =',n+m)
elif question == 2:
    print ('sum =',n*m)
elif question == 3:
    print ('remainder =',m%n)
else :
    print ('divided =',m/n)


请输入第一个整数,回车结束  3
请输入第二个整数,回车结束  9
如果你想求和请输入1,如果你想求和请输入2,如果你想求和请输入3,输入其他数字默认整除,回车结束2
sum = 27

In [4]:
#练习 3:写程序,能够根据北京雾霾PM2.5数值给出对应的防护建议。如当PM2.5数值大于500,则应该打开空气净化器,戴防雾霾口罩等。
pm2_5 = int(input('请输入pm2.5的值,回车结束  '))
if pm2_5 >= 500:
    print ('应该打开空气净化器,戴防雾霾口罩')
elif 300 <= pm2_5 < 500:
    print ('应该尽量不出门,必要出门戴防雾霾口罩')
elif 100 <= pm2_5 < 300:
    print ('出门戴防雾霾口罩')
elif 0 <= pm2_5 < 100:
    print ('空气不错')


请输入pm2.5的值,回车结束  500
应该打开空气净化器,戴防雾霾口罩

In [7]:
#练习 4:英文单词单数转复数,要求输入一个英文动词(单数形式),能够得到其复数形式,或给出单数转复数形式的建议
#(提示,some_string.endswith(some_letter)函数可以判断某字符串结尾字符)。

#写成英语名词了,就不写动词了

while True :
    Eng_word = input('请输入一个要转换的英语单词,回车结束,输入‘q’结束  ')
    if Eng_word == 'q':
        break
    if Eng_word.endswith('s') or Eng_word.endswith('x') or Eng_word.endswith('sh') or Eng_word.endswith('ch'):
        print (Eng_word+'es')
    elif Eng_word.endswith('y'):
        print (Eng_word[0:len(Eng_word)-1]+'ies')
    elif Eng_word.endswith('f') or Eng_word.endswith('fe'):
        if Eng_word == 'safe' or Eng_word == 'roof': #这特殊情况能列举完吗???
            print (Eng_word+'s')
        elif(Eng_word.endswith('f')):
            print (Eng_word[0:len(Eng_word)-1]+'ves')
        else :
            print (Eng_word[0:len(Eng_word)-2]+'ves')
    elif Eng_word.endswith('o'):
        if Eng_word == 'tomato' or Eng_word == 'tomato' or Eng_word == 'hero' or Eng_word == 'negro':  #这特殊情况能列举完吗???
            print (Eng_word+'es')
        else :
            print (Eng_word+'s')
    #elif #不规则的单词 就不写了
    else :
        print (Eng_word+'s')


请输入一个要转换的英语单词,回车结束,输入‘q’结束  photo
photos
请输入一个要转换的英语单词,回车结束,输入‘q’结束  tomato
tomatoes
请输入一个要转换的英语单词,回车结束,输入‘q’结束  safe
safes
请输入一个要转换的英语单词,回车结束,输入‘q’结束  life
lives
请输入一个要转换的英语单词,回车结束,输入‘q’结束  bus
buses
请输入一个要转换的英语单词,回车结束,输入‘q’结束  q

In [5]:
#尝试性练习:写程序,能够在屏幕上显示空行。   ?????????????????????
print ('\n')




In [9]:
#挑战性练习:写程序,由用户输入一些整数,能够得到几个整数中的次大值(第二大的值)并输出。
max_n = 0
secmax_n = 0
while True:
    n = input('请输入一个整数,回车结束,输入‘q’为退出 ')
    if n == 'q':
        break
    n = int(n)
    if n >= max_n:
        secmax_n = max_n
        max_n = n
print ('max',max_n)
print ('secmax',secmax_n)


请输入一个整数,回车结束,输入‘q’为退出 5346547
请输入一个整数,回车结束,输入‘q’为退出 342
请输入一个整数,回车结束,输入‘q’为退出 454365464
请输入一个整数,回车结束,输入‘q’为退出 32423
请输入一个整数,回车结束,输入‘q’为退出 231
请输入一个整数,回车结束,输入‘q’为退出 q
max 454365464
secmax 5346547