Python入门篇-基础语法
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
一.编程基础
1>.程序
一组能让计算机识别和执行的指令。
程序1>.算法+ 数据结构= 程序2>.数据一切程序的核心3>.数据结构是数据在计算机中的类型和组织方式4>.算法是处理数据的方式,算法有优劣之分写程序难点1>.理不清数据2>.不清处理方法3>.无法把数据设计转换成数据结构,无法把处理方法转换成算法4>.无法用设计范式来进行程序设计5>.世间程序皆有bug,但不会debug
2>.电子计算机
能够执行程序的机器。
3>.现代计算机
(Alan Mathison Turing,1912年6月23日-1954年6月7日),出生于英国伦敦,毕业于,英国数学家、逻辑学家,被称为计算机科学之父,人工智能之父。图灵提出的著名的模型为现代计算机的逻辑工作方式奠定了基础。
(John von Neumann,1903~1957),出生于匈牙利,毕业于,数学家,被后人称为“计算机之父”和“之父”。
4>.冯·诺依曼体系架构
CPU由运算器和控制器组成。 运算器,完成各种算术运算,逻辑运算,数据传输等数据加工处理。 控制器,控制程序的执行。 存储器,用于记忆程序和数据,例如内存。 输入设备,将数据或者程序输入到计算机中,例如键盘,鼠标。 输出设备,将数据或程序的处理结果展示给用户,例如显示器,打印机等。
5>. 计算机语言
人与计算机之间交互的语言。
6>.机器语言
一定位数组成二进制的0和1的序列,称为机器指令。机器指令的集合就是机器语言。 与自然语言差异太大,难学、难懂、难写、难记、难查错。
7>.汇编语言
用一些助记符号替代机器指令,称为汇编语言。ADD A,B 指的是将寄存器A的数与寄存器B的数相加得到的数放到寄存器A中。汇编语言写好的程序需要汇编程序转换成机器指令。汇编语言只是稍微好记了些,可以认为就是机器指令对应的助记符。只是符号本身接近自然语言。
二.语言分类
1>.低级语言
面向机器的语言,包括机器语言、汇编语言不同的机器不能通用,不同的机器需要不同的机器指令或者汇编程序
2>.高级语言
接近人类的自然语言和数学语言的计算机语言。高级语言首先要书写源程序,通过编译程序把源程序转换成机器指令的程序。1954年正式发布的Fortran语言是最早的高级语言,本意是公式翻译人们只需要关心怎么书写源程序,针对不同机器的编译的事交给编译器关心处理
3>.低级语言到高级语言的区别
语言越高级,越接近人类的自然语言和数学语言。语言越低级,越能让机器理解。高级语言和低级语言之间需要一个转换的工具:编译器、解释器。C、C++等语言的源代码需要本地编译。Java、Python、C#的源代码需要被解释器编译成中间代码(Bytecode),在虚拟机上运行。
4>.编译语言和解释器语言的区别
编译语言: 把源代码转换成目标机器的CPU指令,即可以直接执行,速度快。解释语言: 解释后转换成字节码,运行在虚拟机上,解释器执行中间代码,即边解释边执行,速度慢。
5>.高级语言的发展
非结构化语言1>.编号或标签、GOTO,子程序可以有多个入口和出口2>.有分支、循环结构化语言1>.任何基本结构只允许是唯一入口和唯一出口2>.顺序、分支、循环,废弃GOTO面向对象语言1>.更加接近人类认知世界的方式,万事万物抽象成对象,对象间关系抽象成类和继承2>.封装、继承、多态函数式语言1>.古老的编程范式,应用在数学计算、并行处理的场景。引入到了很多现代高级语言中2>.函数是“一等公民”,高阶函数
三.Python解释器
官方CPython C语言开发,最广泛的Python解释器IPython 一个交互式、功能增强的CpythonPyPy Python语言写的Python解释器,JIT技术,动态编译Python代码Jython Python的源代码编译成Java的字节码,跑在JVM上IronPython p 与Jython类似,运行在.Net平台上的解释器,Python代码被编译成.Net的字节码
四.基础语法
1>.注释
#!/usr/bin/env python#_*_coding:utf-8_*_#@author :yinzhengjie#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/#EMAIL:y1053419035@qq.com
''' 这是注释代码! 该注释是用来解释某个函数或者类的功能时,一行说明不了需要多行进行注释时使用'''
""" 这是注释代码! 该注释是用来解释某个函数或者类的功能时,一行说明不了需要多行进行注释时使用"""
2>.数字
一.整数 不区分long和int。 进制有不同的表示形式:0xa,0o10,0b10 布尔值(bool):2个值True和False二.浮点数 如3.1415926,9.18等等。三.复数 1+2j
3>.字符串
使用' " 单双引号引用的字符的序列.'''和""" 单双三引号,可以跨行、可以在其中自由的使用单双引号.在字符串前面加上r或者R前缀,表示该字符串不做特殊的处理.
4>.转义序列
\\, \t, \r, \n, \', \", 前缀r,把里面的所有字符当普通字符对待
5>.缩进
未使用C等语言的花括号,而是采用缩进的方式表示层次关系。我们在开发者推荐约定使用4个空格缩进。
6>.续行
在行尾使用 “\” 如果使用各种括号,认为括号内是一个整体,内部跨行不用 “\”
7>.标识符(可以理解是变量,常量等的统称)
1. 一个名字,用来指代一个值2. 只能字母、下划线和数字3. 只能以字母或下划线开头4. 不能是python的关键字,例如def、class就不能作为标识符5. Python是大小写敏感的约定:不允许使用中文不允许使用歧义单词,例如class_在python中不要随便使用下划线开头的表示符
8>.常量
一旦赋值就不能改变值的标识符python中无法定义常量
9>.字面常量
一个单独的量,例如12、"abc" 、'2341356514.03e-9'
10>.变量
赋值后,可以改变值的标识符
五.Python的语言类型
Python是动态语言、强类型语言静态编译语言 实现声明变量类型,类型不能再改变 编译时检查动态编译语言 不用事先声明类型,随时可以赋值为其他类型 编程时不知道是什么类型,很难推断强类型语言 不同类型之间操作,必须先强制类型转换为同一类型。print('a'+1) 弱类型语言 不同类型间可以操作,自动隐式转换,JavaScript中console.log(1+'a')
六.运算符(Operator)
1>.算术运算符
以下例子a = 10 , b= 20。
2>.比较运算符
以下例子a = 10 , b= 20。
3>.赋值运算符
4>.按位运算符(咱们也可以称为“二进制运算符”)
我们都知道,计算机处理数据的时候都会把数据最终变成0和1的二进制来进行运算,也就是说,计算机其实只认识0和1, 那按位运算其实就是把数字转换成二进制的形式后再进行位运算的。直接看例子,我们设定a=60; b=13; 要进行位运算,就得把他们先转成2进制格式,那0和1是如何表示60和13的呢?
好,知道了10进制如何转2进制了之后,我们接着来看,如果进行2个10进制数字的位运算。
看下面的运算过程:
5>.成员运算符
in not in
6>.身份运算符
is is not
7>.运算符优先级,由低到高(了解即可,不用背下来)
算数运算符> 位运算符> 身份运算符> 成员运算符> 逻辑运算符使用方法: 记不住,用括号 长表达式,多用括号, 易懂、易读
8>.三目运算符(三元运算符)
#!/usr/bin/env python#_*_coding:utf-8_*_#@author :yinzhengjie#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/#EMAIL:y1053419035@qq.com# #输入两个数,比较大小后,从小到大升序打印num_1 = int(input("请输入第一个数字:>>> "))num_2 = int(input("请输入第二个数字:>>> "))# if num_1 > num_2:# print(num_2,num_1)# else:# print(num_1,num_2)"""Python没有三目运算符,但提供了: 真值 if 条件 else 假值接下来我们将上面4行代码使用Python中的三目运算符实现,上面4行就可以简写为一行啦!功能能实现,就是可读性较差哟!"""print(num_2,num_1) if num_1 > num_2 else print(num_1,num_2)
9>.博主强烈推荐阅读
推荐一:https://www.cnblogs.com/yinzhengjie/p/8666354.html()
推荐二:https://www.cnblogs.com/yinzhengjie/p/8656833.html()
推荐三:https://www.cnblogs.com/yinzhengjie/p/8679721.html()
推荐四:https://www.cnblogs.com/yinzhengjie/p/8681000.html()
推荐五:https://www.cnblogs.com/yinzhengjie/p/8688081.html()
推荐六:https://www.cnblogs.com/yinzhengjie/p/8688553.html()
推荐七:https://www.cnblogs.com/yinzhengjie/p/8688845.html()
推荐八:https://www.cnblogs.com/yinzhengjie/p/8689059.html()
七.内存管理
变量无须事先声明,也不需要指定类型 动态语言的特性编程中一般无须关心变量的存亡,也不用关心内存的管理python使用引用计数记录所有对象的引用数 当对象引用数变为0,它就可以被垃圾回收GC 计数增加:赋值给其它变量就增加引用计数,例如x=3;y=x 计数减少: 函数运行结束时,局部变量就会被自动销毁,对象引用计数减少 变量被赋值给其它对象。例如x=3;y=x;x=4有关性能的时候,就需要考虑变量的引用问题,但是该释放内存,还是尽量不释放内存,看需求
八.程序控制
1>.程序控制概述
一.顺序 按照先后顺序一条条执行 例如,先洗手,再吃饭,再洗碗二.分支 根据不同的情况判断,条件满足执行某条件下的语句 例如,先洗手,如果饭没有做好,玩游戏,如果饭做好了,就吃饭,如果饭都没有做,叫外卖三.循环 条件满足就反复执行,不满足就不执行或不再执行 例如,先洗手,看饭好了没有,没有好,一会来看一次是否好了,一会儿来看一次,直到饭好了,才可是吃饭。这里循环的条件是饭没有好,饭没有好,就循环的来看饭好了没有。
2>.真值表
False等价布尔值,相当于bool(value) 空集合 空字符串 空字典 列表 空元祖 one对象 0
3>.单分支结构
if语句if condition: 代码块condition必须是一个bool类型,这个地方有一个隐式转换bool(condition)代码块 类似于if语句的冒号后面的就是一个语句块 在if、for、def、class等
#!/usr/bin/env python#_*_coding:utf-8_*_#@author :yinzhengjie#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/#EMAIL:y1053419035@qq.comzhangshan_age = 28lisi_age = 20if zhangshan_age > lisi_age: print("张三年龄比李四大")
#!/usr/bin/env python#_*_coding:utf-8_*_#@author :yinzhengjie#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/#EMAIL:y1053419035@qq.comnum_01 = int(input("请输入第一个数:>>> "))num_02 = int(input("请输入第二个数:>>> "))if num_01 > num_02: print("两次输入,最大的数字是:",num_01)else: print("两次输入,最大的数字是:", num_02)
3>.多分支结构
if...elif...else语句if condition1: 代码块1elif condition2: 代码块2elif condition3: 代码块3 ......else: 代码块
#!/usr/bin/env python#_*_coding:utf-8_*_#@author :yinzhengjie#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/#EMAIL:y1053419035@qq.comAcademic_record = int(input("请输入你的学习成绩:>>> "))if Academic_record == 100: print("满分!")elif Academic_record >= 90: print("优秀!")elif Academic_record >=80: print("良好!")elif Academic_record >=70: print("一般!")elif Academic_record >= 60: print("及格!")else: print("你得加油啦!")
#!/usr/bin/env python#_*_coding:utf-8_*_#@author :yinzhengjie#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/#EMAIL:y1053419035@qq.comnumber = int(input("请输入一个不超过5位的正整数:>>> "))if number >=100000: print("对不起,您输入的参数不合法!")else: if number >= 1000: if number >= 10000: print("您输入的是五位数") else: print("您输入的四位数") else: if number >= 100: print("您输入的是三位数") elif number >= 10: print("您输入的是二位数") else: print("您输入的是一位数")
4>.while循环
while condition: block当条件满足即condition为True,进入循环体,执行block
#!/usr/bin/env python#_*_coding:utf-8_*_#@author :yinzhengjie#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/#EMAIL:y1053419035@qq.comflag = 100while flag: if flag % 2 != 0: print(flag) flag -= 1
5>.for循环
for element in iteratable: block当可迭代对象中有元素可以迭代,进入循环体,执行block
#!/usr/bin/env python#_*_coding:utf-8_*_#@author :yinzhengjie#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/#EMAIL:y1053419035@qq.comfor item in range(100): if item % 2 != 0: print(item)
#!/usr/bin/env python#_*_coding:utf-8_*_#@author :yinzhengjie#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/#EMAIL:y1053419035@qq.comfor item in range(100): if not item % 2: print(item)
6>.continue语句
#!/usr/bin/env python#_*_coding:utf-8_*_#@author :yinzhengjie#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/#EMAIL:y1053419035@qq.com# for item in range(0,100,2):# print(item)for item in range(0,100): if item & 1: continue print(item)
7>.break语句
#!/usr/bin/env python#_*_coding:utf-8_*_#@author :yinzhengjie#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/#EMAIL:y1053419035@qq.comcount = 0# 计算1000以内的被7整除的前20个数(for循环)for item in range(0,1000,7): print(item) count += 1 if count >= 20: break
continue和break是循环的控制语句,只影响当前循环,包括while、for循环如果循环嵌套, continue和break也只影响语句所在的那一层循环continue和break 不是跳出语句块,所以if condition: break 不是跳出if,而是终止if外的break所在的循环
8>.循环else子句
while condition: blockelse: blockfor element in iteratable: blockelse: block如果循环正常的执行结束,就执行else子句;如果使用break终止,else子句不会执行
十.练习案例(尽量所有程序自己能实现,不能实现的要求能写出思路或者伪代码!如果你觉得困难就对了,说明你已经在努力啦!)
1>.给定一个不超过5位的正整数,判断该数的位数,依次打印出个位、十位、百位、千位、万位的数字.
2>.给定一个不超过5位的正整数,判断该数的位数,依次从万位打印到个位的数字
3>.打印一个边长为n的正方形
4>.求100内所有奇数的和(2500)
5>.判断学生成绩,成绩等级A~E。其中,90分以上为'A',80~89分为'B',70~79分为'C',60~69分为'D',60分以下为'E'
6>.求1到5阶乘之和
7>.给一个数,判断它是否是素数(质数,一个大于1的自然数只能被1和它本身整除)
8>.打印九九乘法表
#!/usr/bin/env python#_*_coding:utf-8_*_#@author :yinzhengjie#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/#EMAIL:y1053419035@qq.com#打印九九乘法表for i in range(1,10): for j in range(1,i+1): print("{} * {} = {}".format(i,j,(i*j)),end="\t") print()
#!/usr/bin/env python#_*_coding:utf-8_*_#@author :yinzhengjie#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/#EMAIL:y1053419035@qq.com#打印九九乘法表i = 1while i < 10: j = 1 while j < 10: if i >= j: print('%d x %d = %d'%(i,j,(i*j)), end="\t") j += 1 i += 1 print()
#!/usr/bin/env python#_*_coding:utf-8_*_#@author :yinzhengjie#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/#EMAIL:y1053419035@qq.com#倒着打印九九乘法表for i in range(1,10): for item in range(i): print(" " * 12,end=" ") for j in range(i,10): print("{} x {} = {:<4}".format(i,j,i*j),end=" ") print()
#!/usr/bin/env python#_*_coding:utf-8_*_#@author :yinzhengjie#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/#EMAIL:y1053419035@qq.com#倒着打印九九乘法表for i in range(1,10): for j in range(1,10): if i > j : line = "{} {} {:<4}".format(" "," "," ") else: line = "{} x {} = {:<4}".format(i,j,i*j) print(line,end=" ") print()
#!/usr/bin/env python#_*_coding:utf-8_*_#@author :yinzhengjie#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/#EMAIL:y1053419035@qq.com#倒着打印九九乘法表for i in range(1,10): print((i-1)*(" " * 14),end="") for j in range(i,10): print('%d x %d = %d' % (i, j, (i * j)), end=" ") if i * j < 10: print(end=" ") print()
#!/usr/bin/env python#_*_coding:utf-8_*_#@author :yinzhengjie#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/#EMAIL:y1053419035@qq.com#倒着打印九九乘法表for i in range(1,10): print(' '* 7 * (i - 1),end="") for j in range(i,10): product = i * j if product < 10: end = ' ' else: end = ' ' print(str(i) + "*" + str(j) + "=" + str(i * j),end=end) print()
9>.打印如下图所示的菱形或闪电(典型的中心对称案例)
#!/usr/bin/env python#_*_coding:utf-8_*_#@author :yinzhengjie#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/#EMAIL:y1053419035@qq.com#打印菱形display = "*"for item in range(1,8,2): print((display * item).center(7))for item in reversed(range(1, 6, 2)): print((display * item).center(7))
#!/usr/bin/env python#_*_coding:utf-8_*_#@author :yinzhengjie#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/#EMAIL:y1053419035@qq.com#打印菱形for i in range(-3,4): if i < 0: prespace = -i else: prespace = i print(" " * prespace + "*" * (7 - prespace * 2))
#!/usr/bin/env python#_*_coding:utf-8_*_#@author :yinzhengjie#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/#EMAIL:y1053419035@qq.com#打印闪电for i in range(-3,4): if i < 0: print(" " * (-i) + "*" * (4 + i)) elif i > 0: print(" " * 3 + "*" * ( 4 - i)) else: print("*" * 5)
10>.求斐波那契数列第101项
#!/usr/bin/env python#_*_coding:utf-8_*_#@author :yinzhengjie#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/#EMAIL:y1053419035@qq.coma = 1b = 1index = 2print("第0项是:{}".format(0,0))print("第1项是:{}".format(1,1))print("第2项是:{}".format(2,1))while True: c = a + b a = b b = c index += 1 print("第{}项是:{}".format(index,c)) if index == 101: break
11>.打印10万内的所有素数(应用在密码学领域,都要使用大素数)
#!/usr/bin/env python#_*_coding:utf-8_*_#@author :yinzhengjie#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/#EMAIL:y1053419035@qq.com#打印10万内的所有素数print(1)print(2)print(3)for i in range(3,100000,2): m = i ** 0.5 for j in range(3,i,2): if i %j == 0: break if j>m: print(i) break
#!/usr/bin/env python#_*_coding:utf-8_*_#@author :yinzhengjie#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/#EMAIL:y1053419035@qq.com#打印10万内的所有素数num =100000if num > 2: print(2)if num > 3: print(3)if num > 5: print(5)if num > 7: print(7)for num in range(11,num + 1,2): for i in range(3,int(num ** 0.5) + 1,2): if num % i == 0: break else: print(num)
#!/usr/bin/env python#_*_coding:utf-8_*_#@author :yinzhengjie#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/#EMAIL:y1053419035@qq.com#打印10万内的所有素数for i in range(2,10000): for j in range(2,i): if i % j == 0: break else: print(i)
#!/usr/bin/env python#_*_coding:utf-8_*_#@author :yinzhengjie#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/#EMAIL:y1053419035@qq.com#打印10万内的所有素数import timestart = time.clock()for i in range(1,100000,2): if i % 3 == 0: continue if i % 5 == 0: continue for j in range(7,int(i ** 0.5) + 1,2): if i % j == 0: continue print(i)end = time.clock()print(end - start)
#!/usr/bin/env python#_*_coding:utf-8_*_#@author :yinzhengjie#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/#EMAIL:y1053419035@qq.com#打印10万内的所有素数import datetimestart =datetime.datetime.now()for i in range(1,100000,2): if i % 3 == 0: continue if i % 5 == 0: continue for j in range(7,int(i ** 0.5) + 1,2): if i % j == 0: continue print(i)end = datetime.datetime.now()print(end - start)
12>.输入两个数,比较大小后,从小到大升序打印
#!/usr/bin/env python#_*_coding:utf-8_*_#@author :yinzhengjie#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/#EMAIL:y1053419035@qq.com#输入两个数,比较大小后,从小到大升序打印num_1 = int(input("请输入第一个数字:>>> "))num_2 = int(input("请输入第二个数字:>>> "))if num_1 > num_2: print(num_2,num_1)else: print(num_1,num_2)
13>.给一个半径,求圆的面积和周长(圆周率我们取值为3.14)。
#!/usr/bin/env python#_*_coding:utf-8_*_#@author :yinzhengjie#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/#EMAIL:y1053419035@qq.com#给定一个半径,求圆的面积和周长,圆周率为3.14r = int(input("请输入圆的半径:>>> "))PI = 3.14Perimeter = 2 * PI * rArea = PI * r ** 2print("您输入的圆半径为:{},其周长为:{},其面积为:{}".format(r,Perimeter,Area))
14>.输入n个数,求每次输入后的算数平均数。
#!/usr/bin/env python#_*_coding:utf-8_*_#@author :yinzhengjie#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/#EMAIL:y1053419035@qq.com#输入n个数,求每次输入后的算数平均数input_count = 0sum = 0while True: nums = input("请输入一个整数:>>> ") if nums == "quit": break if nums.isdigit(): input_count += 1 sum += int(nums) avg = sum / input_count print("算数平均数为:{}".format(avg))
#!/usr/bin/env python#_*_coding:utf-8_*_#@author :yinzhengjie#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/#EMAIL:y1053419035@qq.com#输入n个数,求每次输入后的算数平均数Flag = TrueNumberMembers = []while Flag: nums = input("请输入一个整数:>>> ") if nums == "quit": Flag = False if nums.isdigit(): NumberMembers.append(nums) NumberSum = 0 for item in NumberMembers: NumberSum += int(item) NumberAvg = NumberSum / NumberMembers.__len__() print("目前已经存在的数字是:{},算数平均数为:{}".format(NumberMembers, NumberAvg))
15>.解决猴子吃桃问题(猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,有多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想吃时,只剩下一个桃子了。求第一天共摘了多少个桃子。)
#!/usr/bin/env python#_*_coding:utf-8_*_#@author :yinzhengjie#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/#EMAIL:y1053419035@qq.com#解决猴子吃桃的问题peach = 1for i in range(9): peach = 2 * (peach + 1)print("猴子第一天共摘了[{}]个桃子".format(peach))