二.顺序结构(看完上一章相信你对python有了一定的了解,心里也想写一些代码来试试,这一章将教你编写python代码的规则与方法)
1.程序设计
(1)分析问题,确定方法
(2)设计算法
(3)选择工具,按算法编写程序
(4)调式程序,分析并输出结果
2.算法
1.概念
在日常生活中,人们做任何一件事情,都是按照一定规则,一步一步进行的,这些解决问题的方法和步骤称为算法。我的理解:就是像各种公式一样,比如说洛必达定律,遇到问题符合条件就用洛必达这个方法,而这个方式是已经被写好了的,使用这个方法就能得到你想要的结果
#这个就是算法
def sum(x1,x2):
y = x1 + x2
return y
#这个就是调用该算法
print(sum(1,2))
3
3.书写规则
1.写下你第一个程序
例:输入三个变量的值,然后按从小到大的顺序输出
x = int(input('input x :')) #输入x的值
y = int(input('input y :')) #输入y的值
z = int(input('input z :')) #输入z的值
#比较大小
if x > y:
x,y = y,x
if x > z:
x,z = z,x
if y > z:
y,z = z,y
print(x,y,z)
例:已知 f(x,y) = x**2 + y**2 输入x,y的值,求对应的函数值
def f(x,y):
return x**2 + y**2
print(f(2,2))
8
2.缩进规则
python通过语句缩进对齐反映语句之间的逻辑关系,从而来区分语句块的,我直接用两段代码来表示缩进不同产生的结果不同:
a = 0
b = 0
for i in range(0,10):
a = a + i
b = a + b
print(b)
165
#--------------------------------
a = 0
b = 0
for i in range(0,10):
a = a + i
b = a
print(b)
45
3.语句行和注释
1.语句行:在python中,语句行从解释器提示符后的第一列开始,前面不能有任何空格,否则会产生语法错误。我的理解:就是写代码的时候该对齐的对齐,空格不能多,也不能少。
2.注释:注释对程序的执行没有任何影响,目的是对程序对解释说明,以增强程序的可读性。此外,在程序调式阶段,有时需要暂时不执行的某些语句这时可以给这些语句加注释符号,相当于对这些语句做逻辑删除,需要执行时,再去掉注释符号即可。我的理解:直接上代码
#这些井号符后面的问题在程序执行时并不会去影响程序,
#所以你可以随便写
#巴拉巴拉巴拉巴拉
import random
a = random.randint(1,10)
if a == 2:
print("ni hao")
#print("ni bu hao") #这个用井号注释的代码在你需要的时候去掉井号就可以执行了
4.赋值语句
1.一般形式
一般表达为: 变量 = 表达式
a = 1
b = 2
c = 3
2.复合赋值语句
python配置了12种复合赋值运算符:
+= -= *= /= /= %= **= <<= >>= &= |= ^=
3.多变量赋值
表达式: 变量1 = 变量2 = 变量3 = ..... = 变量n = 表达式
a = b = 10
print(a)
print(b)
10
10
还有一个同步赋值的语句:变量1,变量2,....,变量n = 表达式1,表达式2,.......,表达式n
a,b,c = 1,2,3
print(a)
print(b)
print(c)
1
2
3
3.数据的输入与输出
1.标准输入
表达式: input((提示字符串))
name = input("please input your name:")
please input your name: yyx
yyx
2.标准输出
表达式:print([输出项1,输出项2,...,输出项n][,sep=分隔符][,end=结束符])
其中,输出项之间以逗号分隔,没有输出项时输出一个空行。sep表示输出时各输出项之间的分隔符(默认以空格分隔),end表示结束符(默认以回车换行结束)。print()函数从左☞右求每一个输出项的值,并将各输出项的值依次显示在屏幕的同一行上。
print(10,20,sep = ',',end= '*')
10,20*
4.格式化输出
具体实现方法有三种:
- 利用字符串格式化运算符%
- 利用format()内置函数
- 利用字符串的format()方法
print('the value is Y%.3f'% 2.2')
the value is 2.200
#-------------------------------
print(format(2.2,'.3f'))
2.200
#-------------------------------
print('the value is Y{0:.3f)'.format(2.2))
2.200
1.字符串格式化运算符%
表达式:格式字符串%(输出项1,输出项2,...,输出项n)
注意:常用格式说明符(标*是较为常用)
格式说明符 | 格式化结果 |
%%(*) | 百分号 |
%c(*) | 字符 |
%s(*) | 字符串 |
%d | 带符号整数(十进制) |
%o | 带符号整数(八进制) |
%x或%X | 带符号整数(十六进制,用小写字母或大写字母) |
%e或%E | 浮点数字(科学计数法,用小写e或大写E) |
%f或%F(*) | 浮点数字(用小数点符号) |
%g或%G | 浮点数字(根据值的大小,采用%e,%f或%E,%F) |
下面举一些较为复杂的例子,自己多敲多想一些:
print("%+3d,%0.2f"%(25,123.567))
+25,123.57
#------------------------------------------------------
print(format(15,'X'),format(65,'c'),format(3.145,'f'))
F A 3.145000
#------------------------------------------------------
print('{0:<15}'.format(1234567890)) #左对齐
print('{0:>15}'.format(1234567890)) #右对齐
print('{0:*^15}'.format(1234567890)) #中间对齐
print('{0:10b}'.format(1234567890)) #用二进制形式输出
print('{0:10o}'.format(1234567890)) #用八进制形式输出
print('{0:10x}'.format(1234567890)) #用十六进制形式输出
1234567890
1234567890
**1234567890***
1001001100101100000001011010010
11145401322
499602d2
在本章最后,我举一些例子,尽量自己手敲,然后实在不会可以去网上查:
(1)从键盘输入一个3位整数,输出他的逆序数。例如123 逆序数为321
(2)编写 二元一次方程的解 { 2x + y = 1,
x + 2y = 3}