实现的简单python例子

本人学python没多久,不足的望指点

1.输入三个变量,然后按小到大输出

x = int(input('please input x:'))
y = int(input('please input y:'))
z = int(input('please input 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)


2.求101-200的素数
from math import sqrt
def isprime(n):
    k = int(sqrt(n))
    for i in range(2,k+1):
        if n % i == 0:
            return 0
    return 1
    
if __name__ == '__main__':
    for n in range(101, 201):
        if isprime(n) ==1:
            print(n, end = ' ')
版本二:
<pre name="code" class="python">n = int(input('please input n:'))
for i in range(2,n+1):
    j = i
    for j in range(2,n):
        if i % j ==0:
            break
    if  j == i :
        print(i,end=' ')


 3.水仙花 

for i in range(100,1000):
    a = i%10
    b = i%100//10
    c = i//100
    if a**3+b**3+c**3 == i:
        print(i, end=' ')

4.分解质因子

n=int(input('please input n:'))
result=[]
i=2
str1=str(n)+'='
while n>1:
   if n%i==0:
       n/=i
       result.append(str(i))
       i -= 1
   i +=1
str1+='*'.join(result)
print(str1)
函数版

def f(n):
    result=[]
    i=2
    str1=str(n)+'='
    while n>1:
       if n%i==0:
           n/=i
           result.append(str(i))
           i -= 1
       i +=1
    str1+='*'.join(result)
    return str1

if __name__ == '__main__':
    for i in range(80,100):
        print(f(i))

5.统计字符串字符个数,空格字符个数,数字字符个数,其他字符个数

import string
s=input('please input string:')
letters = 0
space = 0
digit = 0
others =0
for ch in s:
    if ch.isalpha():
        letters += 1
    elif ch.isspace():
        space += 1
    elif ch.isdigit():
        digit += 1
    else:
        others += 1
print(letters, space , digit, others)

6.lamba 实现两数求最值
MAX = lambda x, y:(x>y)*x + (y>x)*y
MIN = lambda x, y:(x<y)*x + (y<x)*y
if __name__ == '__main__':
    print('max={0} , min={1}'.format(MAX(10,2), MIN(10,2)))

7.输入一个整数,如果为奇数那么sum=1+1/3+.....+1/n
如果为偶数那么 sum=1/2+1/4+....+1/n

def f(n):
    sum=0.0
    if n%2 == 1:
        for i in range(1, n+1, 2):
            sum += 1/i
    else:
        for i in range(2, n+1, 2):
            sum += 1/i
    return sum
if __name__ == '__main__':
    n=int(input('please input n:'))
    print(f(n))

8.查找一个age最高的name

if __name__ == '__main__':
    person = {'shao':23, 'wang':20, 'zhang':21, 'he':22}
    flag = 1
    maxk=''
    for (k, v) in person.items():
        if flag == 1:
            maxk = k
            flag = 0
        else:
            if person[maxk] < v:
                maxk = k
    print(maxk, person[maxk])

9.向文件里面输入一串字符

if __name__ == '__main__':
    string = input('please input string:')
    with open('f:/test.txt', 'a') as file:
        file.write(string)
    file.close()

10.python 对文件操作,两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排序)

import string
if __name__ == '__main__':
    with open('f:/A.txt', 'r') as file_A:
        stringA=file_A.read()
    with open('f:/B.txt', 'r') as file_B:
        stringB=file_B.read()
    stringA+=stringB
    stringA=list(stringA)
    stringA.sort()
    stringA=''.join(stringA)
    with open('f:/C.txt', 'a') as file_C:
        file_C.write(stringA)
    file_A.close()
    file_B.close()
    file_C.close()

11.python与json的转换

class Person(object):
    def __init__ (self, name, age):
        self.name = name
        self.age = age
    def __repr__(self):
        return 'Person Object name:{0}, age{1}'.format(self.name, self.age)
if __name__ == '__main__':
    p=Person('peter', 22)
    print(p)
import person
import json
p=person.Person('shao', 22)
def object2dict(obj):
    d={}
    d['__class__'] = obj.__class__.__name__
    d['__module__'] = obj.__module__
    d.update(obj.__dict__)
    return d
def dict2object(d):
    if '__class__ ' in d:
        class_name = d.pop('__class__')
        module_name = d.pop('__module__')
        module = __import__ (module_name)
        class_ =getattr(module, class_name)
        args = dict((key.encode('ascii'), value) for key, value in d.items())
        inst = class_(**args)
    else:
        inst = d
    return inst
d=object2dict(p)
print(d)
o=dict2object(d)
print(o)
12. 正则表达式

好的博文:

http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html


计算字符串中float数据之和

import re
teststring = '123.33sdhf3424.34fdg323.324'
pattern = re.compile(r'\d+.\d*')
s=pattern.findall(teststring)
print(s)
print(sum([float(var) for var in s]))

正则表达式匹配问题
>>> s = '<html><head><title>Title</title>'
>>> pattern = re.compile('<.*?>')
>>> pattern.findall(s)
['<html>', '<head>', '<title>', '</title>']
>>> re.match('<.*?>',s).span()
(0, 6)

搞清楚贪心匹配与非贪心匹配之间的关系

正则表达式,子串代替问题
import re
p = re.compile('(blue|white|red)')
print(p.sub('colout', 'blue socket and red shoes'))
print(p.sub('colout', 'blue socket and red shoes', count=1))

>>> 
colout socket and colout shoes
colout socket and red shoes
13.删除一个list重复的元素

List=list('sdfhskhdsssssdhkhk')
List.sort()
print(List)
for index in range(len(List)-1, 0, -1):
   if  List[index] == List[index-1]:
       del(List[index])
print(List)
最简单的

str = 'sdfhskdfsjdfljsdf'
list(set(str))

14.删除重复的list

z=[ [1,2] , [3,4] , [1,2] , [5,6] , [7,8] , [9,0] , [3,4] , [1,2] , [7,8] ]
z =[ repr(x) for x in z]
z = set(z)
z = [ eval(x) for x in z]
print(z)


有关于Python实现FDTD(有限差分时域)的例子,可以采用Python编程语言和相应的库来进行模拟。FDTD是一种常用的电磁场仿真方法,可以用于模拟波在空间中传播的过程,例如光波在光纤中的传输或者天线的辐射。 在Python中,可以使用numpy库来处理数组和矩阵运算,使用matplotlib库来进行数据可视化,以及使用scipy库来进行科学计算。 具体的FDTD算法实现包括以下步骤: 1. 初始化场的网格和介质属性; 2. 初始化源和边界条件; 3. 进行时间步进循环,更新场在空间中的数值; 4. 根据模拟结果进行数据分析和可视化。 以下是一个简单Python实现FDTD的例子: ```python import numpy as np import matplotlib.pyplot as plt # 初始化场的网格 nx = 100 ny = 100 ez = np.zeros((nx, ny)) # 更新场的时间步进函数 def fdtd_update(ez, hx, hy): # 计算电场在空间中的更新 ez[1:-1, 1:-1] = ez[1:-1, 1:-1] + (hy[1:-1, 1:-1] - hy[0:-2, 1:-1] - hx[1:-1, 1:-1] + hx[1:-1, 0:-2]) # 进行时间步进循环 for t in range(100): hx = np.random.rand(nx, ny) hy = np.random.rand(nx, ny) fdtd_update(ez, hx, hy) # 数据可视化 plt.imshow(ez, cmap='jet') plt.colorbar() plt.show() ``` 以上是一个简单例子,实际的FDTD实现可能还包括更多的优化和复杂的场分布情况。使用Python进行FDTD的实现可以使得仿真算法更加灵活和可扩展,同时也能够结合Python丰富的科学计算库进行数据分析和可视化。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值