Python中的控制语句
1if语句;if里面的条件不需要括号括起来了,需要用到:表示条件的结束。在else后面也要用到:。
import math
r = int(input("输入圆的半径:"))
if r >= 0:
d = 2 * math.pi * r
s = math.pi * r ** 2
print(d, s)
else:
print("半径不合法")
在这里要注意缩进,最好都用tab,缩进距离不一样也会报错的
如果是嵌套的if-else只用写“elif”
r = int(input("请输入成绩:"))
if r < 0:
print("这是一个负数")
elif r < 60:
print("没有及格")
elif r < 80:
print("成绩良好")
elif r <= 100:
print("非常优秀")
else:
print("输入有误")
`
r = int(input("请输入成绩:"))
if r <= 100:
if r < 60:
print("没有及格")
else:
print("及格了真好")
不同于我用过的其它编程语言,Python 没有 switch / case 语句。
while循环语句:
要注意缩进和没有括号
i = 0;
sum = 0;
while i <= 100:
sum += i
i += 1
print(sum)
for循环语句
使用in,和一个范围range
for num in range(10,20): # 迭代 10 到 20 之间的数字
for i in range(2,num): # 根据因子迭代
if num%i == 0: # 确定第一个因子
j=num/i # 计算第二个因子
print ('%d 等于 %d * %d' % (num,i,j))
break # 跳出当前循环
else: # 循环的 else 部分
print num, '是一个质数'
这个范围也可以是列表(相当于数组)
range(start,end,x);
其中x是增量,如果减小就用-1;
fruits = ['banana', 'apple', 'mango']
for index in range(len(fruits)):
print ('当前水果 :', fruits[index])
print ("Good bye!")
'''
输出:
当前水果 : banana
当前水果 : apple
当前水果 : mango
'''
for letter in 'Python': # 第一个实例
print ('当前字母 :', letter)
'''
当前字母 : P
当前字母 : y
当前字母 : t
当前字母 : h
当前字母 : o
当前字母 : n
'''
break,continue语句:
#求1-100内偶数的个数
num = 0
for i in range(1, 100):
if i % 2 == 1:
continue
else:
num += 1
print(num)
'''
49
'''
,
#求一个数除自身之外最大公约数
num = int (input("输入一个数吧:"))
i = num
for i in range(num-1, 2, -1):
if num % i == 0:
print(i)
break
print(i)
'''
输入一个数吧:98
49
49
'''
上面这个例子同时也说明i在结束时保持不变了。
Python中的函数:
在Python中,函数的定义格式为
def 函数名(形参):
函数体
1(无论有没有返回值,都不用写返回类型。而且有形参也不用写数据类型)
2 函数应写在主函数之前
import math
def fun1(): #定义一个无返回 ,无参数函数
print("你好")
def fun2(s): #定义一个无返回,有参数函数
print(s)
def fun3(r): #定义一个有参数,有返回的函数(计算圆的面积)
return math.pi * r ** 2
def fun4(r=3, x=4, y=5): #定义一个默认参数的函数
return r * y * x
def fun5(*args): #定义一个可变参数长度的函数;(可以传很多不同类型的参数过来)
print(args)
def fun6(a, *args): #定义一个既有普通参数,又有可变参数长度参数的函数(是把普通参数放到前面)
print(a, args)
def fun7(**args): #**代表引用一个字典,传入的参数成为一个字典。主函数调用时要带参数如fun7(x=1,y="sf");
print(args)
def fun8(a, *args, **d): #三种参数都有:
print(a, args, d)
fun1()
fun2("hello")
print(fun3(3.1))
fun4(7, 8, 9)
fun4()
fun5("sd", 2, "dfsa", "dsfjhkjijhjhk")
fun6(10, "uj", "jhk", 2, 3)
fun7(x=1, y=2, z="sdjfk")
fun8(1, 2, 3, 4, x=5, y = 6, z = 7) #1是普通参数,2,3,4是可变长参数,5,6,7是字典引用。
'''
输出:
你好
hello
30.190705400997917
('sd', 2, 'dfsa', 'dsfjhkjijhjhk')
10 ('uj', 'jhk', 2, 3)
{'x': 1, 'y': 2, 'z': 'sdjfk'}
1 (2, 3, 4) {'x': 5, 'y': 6, 'z': 7}
'''
(元祖,列表之间转换略,以后补上)
参数在传递过程中的不变性
数字,字符串,元祖(用小括号表示)作为参数传入函数中,函数中不会改变参数,也称为不可变
列表,字典,相当于数组,作为参数,在函数中可以改变里面的内容。
可以这样说,再给一个不可变类型(比如int)的变量a,赋新值的时候,实际上是在内存中新建一个对象,并将a指向这个新的对象,然后原来的对象的引用计数简易,