第一题:使用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

乐学python_铁乐学python_day01-作业相关推荐

  1. 乐学python_铁乐学python_shelve模块详解

    python序列化模块-shelve模块详解 shelve:vt. 将(书等)放置在架子上:搁置,将某事放到一旁不予考虑:将-搁在一边:装搁架于: 个人感觉有点像字典缓存?暂时搁置到一旁的意思? 研究 ...

  2. 乐学python_铁乐学Python_day09_函数

    今天我们来学习函数. 产生的原由,若没有函数,会显得重复代码多,可读性差,也会造成重复造轮子的情景. 故产生了函数,用来封装好一个功能,它是以功能为导向的. 1.[函数的样式] 例如自己定义一个函数: ...

  3. 21day学通python_铁乐学python_day21_面向对象编程3

    抽象类和接口类 以下内容大部分摘自博客http://www.cnblogs.com/Eva-J/ 继承有两种用途: 一:继承基类的方法,并且做出自己的改变或者扩展(代码重用) 二:声明某个子类兼容于某 ...

  4. 南京工业大学 乐学python_[紫金山乐学帮]南工大研究出新型智能吸附剂,能大大降低能耗...

    最近,南京工业大学刘晓勤.孙林兵教授课题组在有关智能吸附剂方面取得突破性进展,其研究成果刊发于化学领域顶级期刊<德国应用化学>.这一成果为高性能吸附剂的开发提供了新思路,有望大大降低工业过 ...

  5. 乐学python_【IT专家】铁乐学python

    铁乐学 python 2018/04/18 13 铁乐学 python_day23_ 面向对象进阶 1_ 反射 以下内容大部分摘自博客 cnblogs/Eva-J/ isinstance() 和 is ...

  6. 铁乐学python_Day42_锁和队列

    铁乐学python_Day42_锁和队列 例:多个线程抢占资源的情况 from threading import Thread import timedef work():global ntemp = ...

  7. 铁乐学Python_day12_作业

    1.写函数,返回一个扑克牌列表,里面有52项,每一项是一个元组 例如:[('红心',2),('草花',2), -('黑桃','A')] def poker():suit = ['红心', '梅花', ...

  8. 南京工业大学乐学python答案_铁乐学python_day09_作业

    练习题 1.整理函数相关知识点,写博客 2.写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素, 并将其作为新列表返回给调用者. def odd_index(l): lis = [] for ...

  9. 慕课乐学python单元测试答案_乐学Python_章节测验,期末考试,慕课答案查询公众号...

    和梯形十字法适用于处理坝或坝端的().A.排水导渗B.回水导渗C.横向裂缝 采煤工作面上隅角处瓦斯积聚的处理方法有().A.风障引导风流法B.风筒导排风流法C.逐段距离通风排 对于有突出危险的煤层应采 ...

最新文章

  1. 5G NGC — UDR 统一数据存储库,UDSF 非结构化数据存储功能
  2. mooc浙大数据结构PTA习题之一元多项式的乘法与加法运算
  3. 安全篇之手机数字密码九宫格究竟哪个更安全?
  4. 【荐】中国最有潜力的十位企业家(IT行业占大半)
  5. MFC中CString和int的转换
  6. .NET Core开发日志——WCF Client
  7. 【HDU - 5914 】Triangle (打表 或 set维护)
  8. 利用stat命令获取Linux文件系统和文件的详细状态信息
  9. java连接mysql执行ddl_dljd_(007_009)_jdbc执行DQL/DML/DDL语句
  10. 零氪科技与诺华达成战略合作 共同打造数字化医疗创新模式
  11. 一用户使用LTC以168万美元的价格购入收藏界“圣杯“卡片
  12. c++中vector用法(涵盖算法题中知识点)
  13. 信么?PrintDemon 漏洞影响自1996年起发布的所有 Windows 版本
  14. 【廖雪峰官方网站/Java教程】设计模式(二)
  15. 卖出跨式套利与买入蝶式价差
  16. html 长度太长截断,HTML CSS 表格换行禁止 超出指定长度自动截断
  17. 数学猜想验证步骤_小学数学思维之猜想验证法
  18. webpack雪碧图生成
  19. 大一新生必看,自学必看,里昂详解数据结构之二叉树
  20. 微信小程序怎么推广运营-微信小程序引流方法

热门文章

  1. java 线程安全list_JAVA并发编程实战-线程安全性
  2. layer调用父页面方法_Ruby for SketchUp之图层【Layer】
  3. 利用软碟通软件制作Ubuntu16.04系统启动盘
  4. log4j之log4j2.xml使用
  5. centos7恢复mysql数据库_MySQL数据库升级迁移填坑记
  6. python标准库os_Python基础--人们一些最爱的标准库(sys os fileinput)
  7. java pdf增删改查_如何利用Java代码操作索引库?
  8. linux访问网站出现443,Linux访问网站一直出现超时
  9. export Oracle_sid =asm,单实例下oracle数据库从文件系统迁移到ASM上
  10. python裁剪图片并保存_python – 如何从图像中剪切轮廓并将其保存到新文件中