• 铁乐学python_day01-作业


    第一题:使用while循环输入 1 2 3 4 5 6 8 9 10

    # 使用while循环输入 1 2 3 4 5 6  8 9 10
    count = 0
    while (True) :
    	count = count + 1 
    	#判断当count等于7的时候,返回循环最初,不执行下面的打印等语句
    	if count == 7:
    		continue
    	print (count)
    	#判断当count等于10的时候,跳出循环。
    	if count == 10:
    		break
    

    思路是设置一个初始值count,然后开始循环,自增1;
    加if判断语句,当count为7时使用continue跳过打印7;
    当count为10时,使用break中断和跳出循环。
    敲的时候出了很多规范性的错,
    比如没有使用英文的冒号,
    没有对应缩进区块,
    == 错敲成了=,这两者的区别,
    前者是比较值,后者是直接赋值。

    更优雅的写法应该是while的同时将其中满足跳出循环的条件也给上,节省代码行数,也比较优雅易懂。
    例如以下:

    #计数初始为0
    count = 0
    #当count小于10时,进行循环,反之则是中止循环,不需要用到break
    while ( count < 10 ) :
    	count = count + 1
    #当count为7时使用continue跳过打印7;
    	if count == 7:
    		continue
    	print (count)
    

    对比两例可看出,有效代码行数从8行节省到6行,关键是易读性提高了。

    第二题:求1-100的所有数的和

    # 求1-100的所有数的和
    # 求和,故除设置初始计数的count变量外,还应设置多一个sum和的变量
    count = 0
    sum = 0
    # 注意,设置满足的条件我最初设的是小于101,结果得数把101也算进去了,
    # 排查后发现是count自增1,到count为99的时候再加1就是100了,条件设为小于100才是刚刚好。
    while (count < 100):
    	#计数器自增1
    	count = count + 1
    	#和数和计数器相加
    	sum = sum + count
    #循环中止的时候我们输出结果,注意字符串只能和字符串拼接,所以sum要用str转义
    print ('1-100的所有数之和为:'+str(sum))
    

    第三题 输出 1-100 内的所有奇数

    odd = 1
    while (odd < 101):
    	print (odd)
    	#奇数的特质之一是从1开始,自身加2后的数同样也是奇数
    	odd = odd + 2
    

    如果换另一种思路,从奇数的另一个特质,被2除后都余1来输出的话会怎么样呢?

    odd = 0
    while (odd < 100):
    	odd = odd + 1
    	#取余来进行判断,余数为1则输出打印,不用对余数为0的情况再进行判断。
    	if (odd % 2 == 1) :
    		print (odd)
    

    注意,上面敲代码的时候我缩进的时候混合使用了tab键和spaces键以致报错。
    所以python在对缩进规范这里要求挺严的,嗯,要优雅,不要慌乱。

    第四题:输出1-100内的所有偶数

    # 输出 1-100 内的所有偶数
    even = 0
    while (even < 100):
    	even = even + 1
    	#对even进行取余运算,等于0的则打印输出even
    	if even % 2 == 0:
    		print (even)
    

    这题与第三题是同类型的,不多作叙述。

    第五题:求1-2+3-4+5 ... 99的所有数的和

    # 求1-2+3-4+5 ... 99的所有数的和
    # 计数器初始为0,和也初始为0
    count = 0
    sum = 0
    while (count < 99):
    	count = count + 1
    	#当count是偶数时(取余为0)就被和相减
    	if count % 2 == 0:
    		sum = sum - count
    		#加上continue来控制它不再执行下面的语句,又周而复始进行下一次循环
    		continue
    	#反之,奇数时直接相加
    	sum = sum + count
    #别忘了将得出的sum结果输出给用户,str转义成字符串与提示拼接。
    print ('1-2+3-4+5...99的所有数的和为:'+str(sum))
    

    第六题:模拟用户登录(三次机会重试)

    # 用户登录(三次机会重试)
    # 这里题意比较含糊,实际上现在还是基础阶段,
    # 老师这题的意思是大致让你模拟出人机交互及认证三次
    
    # 故定义用户名和密码变量如下:
    username = 'tiele'
    password = 'ABCabc123'
    #认证计数器初始为3
    count = 3
    
    #开始三次认证循环
    while (count > 0):
    	#开始人机交互,分别输入用户名和密码
    	name = input ("请输入用户名:")
    	#需要给个pass让用户进行输入交互
    	pass
    	passwd = input ("请输入密码:")
    	if username == name and password == passwd :
    		print ("你已成功登录")
    		#成功登录后当然要break跳出循环
    		break
    	else:
    		#输错机会减1并给出提示
    		count = count - 1
    		print ("用户名或密码错误,你还有"+str(count)+"次机会进行验证。")
    


    最初我做这题的时候是用了机会初始为0,增加到3则中止循环的方式,后来对照了一下同学的,感觉的确使用初始机会为3,然后能逐次-1并提示的思路人性化一点。
    后来发觉有别的同学用的是我最初的0增到3的思路,直接提示登录失败,到3次时提示超过三次登录失败,请稍后重试,也是很符合常见的情境。
    所以是感觉都可以。

    至此,day1的作业就全部完成了。

    2018-3-17
    end

    附:day01的作业6题代码全部己提交到github上。
    https://github.com/tielemao/python-learn/tree/master/day01

  • 相关阅读:
    p1822
    Spring框架——文件上传(SpringMVC)
    Spring框架——拦截器(SpringMVC)
    Spring框架——SpringMVC
    Spring框架——AOP
    Spring框架——SpringEL
    Spring框架——Bean与DI
    毕业实习与毕设
    Spring框架——Ioc、DI与Spring框架
    Java基础——异常和断言
  • 原文地址:https://www.cnblogs.com/tielemao/p/8590904.html
Copyright © 2020-2023  润新知