python基础知识

Python数学实验与建模学习

1. 输出print函数

print指令就是用来输出指定的字符串或数值,语法如下print(项目1[,项目2,…, sep=分割字符, end=终止符])

print指令也支持格式化功能,主要是由“ %"字符与后面的格式化字符串来控制输出格式,语法如下
print( ” 项目“ %(参数行))。

在输出的项目中使用“ %s ”代表输出字符串,”%d ” 代表输出整数,"%f”代表输出浮点数。

name = "john"
age = 18
print("%s的年龄是%d"%(name,age))
print("{}的年龄是{}".format(name,age))

另外,通过设置格式符可以达到对齐效果,例如:
%7s:固定输出7个字符,若不足7个字符,则会在字符串左方填入空格符;若多于7个字符,则全部输出
%7d:固定输出7个数字,若不足7位数,则会在数字左方填入空格符;若多于7位数,则全部输出
%8.2f:连同小数点也算1个字符,这种格式会固定输出8个字符,其中小数固定输出2位数,如果整数少千5位数,就会在数字左方填入空格符,但若小数少于2位数,则会在数字右方填入0. 

2. 转义字符

3. 输入input函数

input( )是输入指令,语法如下:
变量=input(提示字符串)

input所输入的内容是一种字符串,如果要将该字符串转换为整数,就必须通过int( )函数或eval()函数,如果将该字符串转换为浮点数,必须通过float( )函数

height = float(input("你的身高是多少"))
print(height)

4. 逻辑运算符

主要有3个运算符:not,and,or

value = (45 + 21 == 65) or (54 == 54)
print(value)

5. 位运算符

位运算是二进制位逐位计算。要将整数转换成二进制,可以使用bin()

6. 流程控制语句

(1) if语句分支语句有条件用elif,最后用else

(2)range()建立整数序列,可搭配for语句使用

print(list(range(4)))
print(list(range(1,5)))
print(list(range(2,10,2)))
sum = 0
number = eval(input("请输入一个数字"))
for i in range(1,number+1):
    print("%d"%(i),end = " ")
    sum += i
    if i < number:
        print("+",end = " ")
    else: print("=",end = " ")
print("%d"%(sum))

(3)while循环

from math import *
angle = float(input("请输入角度"))
x = radians(angle)
n = 0
sum = a = x
while abs(a) >= 10e-6:
    a *= -x*x/(2*n+2)/(2*n+3)
    sum += a
    n += 1
print("x={},sinx = {}".format(angle,sum))

 7. 列表

a = [0,"a","b","c","d",["e","f"]]
print(a[0])
print(a[1])
print(a[5][1])
print(a[-1])
print(a[-3:])
print(a[:3])#前三个元素
print(a[::2])#显示奇数位置的元素
print(a[0:-1])#第一个到倒数第二个元素,不包括最后一个

 (1)列表元素的增加

a = [1,2,3,4]
a.insert(1,6)
print(a)
a.extend([2,4,5])
print(a)
a.append(8)
print(a)

(2)列表元素的删除

a = [1,2,3,4,5,4,5,6]
a.pop()
print(a)
a.pop(0)
print(a)
a.remove(5)
print(a)

 (3)列表常用操作

8. tuple元组 

元组不是一种可变类型的数据结构,只是存储数据的不可变容器。

只有count和index两种方法可用。

b1 = (9,)为只有一个元素的元组;b2 = (9) 表示b2为整数9。

获取索引的方法与列表相同。

9. dict 字典

字典以键值对的形式存储数据

d = {"name":"john","age":32,"children":{"son":"mack","girl":"sunny"}}
print(d)
print(d["name"])
print(d["children"])
d["name"] = "david"
print(d)
d["address"] = "school"
print(d)
d.pop("address")
print(d)

 10. set集合

集合无序排列且不重复,集合和字典都是无序集合体。

a = [1,2,3,4,3,3,5,4,6]
b = set(a)
c = list(b)
print(c)

数学上,两个集合的对称差是只属于其中一个集合,而不属于另一个集合的元素组成的集合。 集合论中的这个运算相当于布尔逻辑中的异或运算。

11. 序列的实用操作

(1)strip()函数:用于去除开头结尾的空格字符。lstrip()去除开始的空格,rstrip()去除尾部的

(2)join()函数:通过某个字符拼接序列的字符串元素

list = ["I","am","a","student"]
print(" ".join(list))

(3)lambda函数:匿名函数,定义单行函数,接收多个参数,返回单个表达式的值

(4)map函数:接受一个函数和一个列表,把函数功能依次作用在列表的每个元素上,得到新的列表。

(5)reduce函数:格式为reduce(function, sequence[, initial]) ,迭代sequence时,先把前两个元素传进函数中,得到的结果和第三个元素再做为参数传入函数中,以此类推。如果填了initial,那第一次传入的就是initial和第一个元素。

from functools import reduce
#计算5!
print(reduce(lambda x,y:x*y,range(1,6)))

(6)filter函数:格式为filter(function or None, iterable) 通过function对iterable里的元素进行过滤。如:print(list(filter(lambda n: n'I(3==0, range (1, 21))))

(7)zip函数:将多个列表或者元组对应位置的元素组合成元组

a = range(1,8)
b = range(3,10)
c = zip(a,b)
print(*c)

(8)enumerate函数:枚举元素

a = [(1,5),(2,6),(3,7)]
for b in enumerate(a):
    print(b)
#列表推导式
print([value[1] for (ind,value) in enumerate(a)])

 12. 列表推导式

(1)平铺嵌套的列表 

a=[[1,2,3], [4,5,6], [7,8,9]]
print([element for i in a for element in i])

(2)过滤不符合条件的元素 

a=[-1,-2,-3,2,3,4,-4,-5,3,6]
print([i for i in a if i>0])

(3)使用多个循环和条件

print([(x,y) for x in range(1,5) if x%2 ==0 for y in range(6) if y%2 == 0])

 13. 元组生成器推导式

使用的是圆括号,结果是一个生成器对象,最后需要将他转换成元组或者列表

g1=((i+1)**2 for i in range(6))
g2 = tuple(g1)
print(g2)

14. 函数的可变参数

不确定给自定义函数传入多少个参数值时,在参数前加上*,可接纳多个实参。

def add(*args): 
    s = 0
    for num in args:
        s += num
    return s

print(add(10, 10, 3, 4))

 15. 关键字参数

def person(name, age, **kw):
    print('name:', name,'age:', age,'other:', kw)
person( ' Michael', 30)
person('Bob', 35, city='Beijing')
person ('Adam', 45, gender='M', job='Engineer')

 16. 递归函数

递归函数使程序变得简介,但是以牺牲存储空间为代价的。

#求n!
def fac(n):
    if n <= 1:
        return 1
    else:
        return n*fac(n-1)
print(fac(5))
  • 14
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值