1 环境安装
python就是众多编程语言的一种,可以完成各种各样的工作,而且入门简单,因此广受欢迎。 编写python程序需要安装python,去官网下载安装就好。
比如我电脑为win11,安装的python3.11,可以在搜索中搜索python关键字,会出现IDLE(Python 3.11)这个自带的编辑器,后面我们就在里面编写python程序学习。
2 编写一个程序
我现在是个小白,对python编程一无所知,现在我要用python编写一个简单的程序,计算1-100中的素数,并输出。
2.1 目标:计算1-100中的素数,并以空格分隔形式输出。
素数:简单的说就是大于1且只能被1和自己整除的正整数。
2.2 处理逻辑分析
编写前,我们分析下处理逻辑。首先我们要从1开始直到100,这100个数我们要逐一判断是否素数,如果是素数,我们就记录到一个素数的列表,全部判断完后,将素数的列表整体输出出来。
思路知道了,但程序怎么写还一头雾水,需要解决以下的点:
- 如何从1开始到100一个个判断
- 判断素数的方法(也就是程序里面说的函数)怎么写
- 怎么将素数放到列表中
- 怎么输出这个列表
下面我们就逐一解决这些问题,并不断尝试。
2.3 开始编写程序
针对上面的逻辑分析及需要解决的点,我们查阅资料开始试着一个个学习解决。
# 1、首先我们从1-100一个个判断,这里要用到循环的概念,python里面循环常用的有while和for,我们先用while来实现试试。 注意 前面带了 '#' 表示注释,程序不会去执行。
num = 1 # 这里涉及变量的定义,我们先定义一个变量num,从1开始。
while num <= 100: # 这里就是循环啦,如果num<=100就一直执行后面的循环体,知道不满足。注意后面的半角冒号。
print(num ) # 这里我们先将a输出到控制台,提前学习输出的语法,就是print
num = num + 1 # 这里我们将num 增加1,做到判断每个数的效果,如果不加一直是1,就无限循环卡死了。
这里我们可以先试着执行下上面那段,熟悉下程序怎么运行,再进行后面的探索。我们创建一个文本文件命名为01_输出素数.py,然后用IDLE(搜索栏搜索)打开这个文件,输入上面的内容,然后点Run-Run module(或按快捷键F5)执行,会输出1-100的数字,如果报错会提示错误(如while后面没有加':'号)。如下图:
2.3 继续完善程序
上面程序运行成功后,我们对python怎么编程,运行有了一个简单的了解。下面我们完成输出1-100内素数的目标。
# 这里我们定义一个判断是否素数的函数,如果是素数返回1,否则返回0。定义函数用以下形式
# def 方法名(参数):
# 这里执行函数里面的代码
def isPrimeNumer(num):
# 这里我们要用到条件判断, if 条件: 来判断一个条件是否成立。
# 判断如果num大于1且num不能被1到num-1之间的数整除。
if num <= 1: # 如果小于等于1直接返回0
return 0
# 循环除了while,也可以用for。我们用for循环1-num之间的数字,用到了内置的range函数
for i in range(2, num +1):
if i < num and num % i == 0: # 如果整除了,表示不是素数, 直接返回
return 0
return 1
num = 1 # 这里涉及变量的定义,我们先定义一个变量num,从1开始。
while num <= 100: # 这里就是循环啦,如果num<=100就一直执行后面的循环体,知道不满足。注意后面的半角冒号。
# 这里我们判断num是不是素数,可以通过调用一个函数来实现。
isPrime = isPrimeNumer(num)
# 如果是素数,那么就将他打印出来。这里用到了if条件判断,判断素数的函数中也会用到
if isPrime == 1:
print(num, end=" ") # 打印num,用空格分开。如果不加后面end=" ",打印会换行
num = num + 1 # 这句不要忘记,如果一直运行可能就是死循环了。
执行上面程序,就能成功打印1-100之间的素数了。
2 用到的语法总结
编写这个程序,我们用到了python中以下语法:
变量: python中直接定义变量就好, 如num=1。
条件判断: 判断某个条件是否成立,定义如下:
if 条件:
代码块
内置函数: 如range(1, 101), 这个表示数字1到100的序列,包括1和100。
定义函数: 函数相当与将代码打包做一件事情,输入东西,返回结果。定义如下:
def 函数名(参数):
函数体
循环: 循环用到了以下两种形式,定义如下:
while num < 100: for i in range(2, 101):
代码块 代码块