python自学笔记含代码注释

Python自学笔记(含代码+注释)

循环:

if语句:格式很重要

if (3>2):
stdio.writeln(‘True’)
else:
stdio.writeln(‘False’)

while语句:+bool

while i<8:
stdio.writeln(‘i<8’)

数组:

suits = [‘clubs’,‘dhsudhud’,‘heart’,‘spa’]
x = [0.3, 0.4, 0.5]
y = [0.4, 0.5, 0.6]

total = 0.0
for i in range(len(x)):
total += x[i]*y[i]

x[len(x)-1]
x += [0.4]
输出:x = [0.3,0.4,0.5,0.4]

a = for i in range(n):
a += [0.0]

x[0] = 1 直接改变

数组前后换位置:
n = len(x)
for i in range(n//2):
temp = a[i]
a[i]= a[n-1-i]
a[n-1-i] = temp

求平均值:
total = 0
for i in range(len(x)):
total += x[i]
avg = total / len(x)

total = 0.0
for v in x:
total += v
avg = total / len(x)

max(x)
sum(x)
min(x)

x = [0.3, 0.4, 0.5]
y = x
x[1] = 0.9

输出:
x = [0.3, 0.9, 0.5]
y = [0.3,0.9,0.5]

y = []
for v in x:
y += [v]

单变量不具有可变性 ;数组具有可变性
x = 3
y = x
x = 5
输出:y = 3

或者:
y = x[:]
y = x[1:3] 复制x中的1到2(左闭右开)

a = []
for i in range(n):
a += [0.0]

a = stdarray.create1D(n,0.0)

a = stdarray.create2D(n,m,0.0)

二维数组

a = [[12,20,33],[25,69,55]]
a = []

for i in range(n):
row = [0,0]*n
a += [row]

import stdarray
a = stdarray.create2D(m,n,0.0)
a[i][j]

for i in range(m):
for j in range(n):
stdio.write(a[i][j])
stdio.write(’ ')
stdio.writeln()

for row in a :
for v in row:
stdio.write(v)
stdio.write(’ ')
stdio.writeln()

for i in range(m):
total = 0.0
for j in range(n):
total += a[i][j]
a[i][n] = total/m

for j in range(n):
total = 0.0
for i in range(m):
total += a[i][j]
a[m][j] = total/n

c = stdarray.create2D(n,n,0.0)
for i in range(n):
for j in range(n):
c[i][j] = a[i][j]+b[i][j]

for i in range(n):
for j in range(n):
for k in range(n):
c[i][j] = a[i][k]*b[k][i]

b[] = a[i][j] *x[]
b = stdarray.create2D(m,0.0)

for i in range(m):
for j in range(n):
b[i][j] = a[i][j] * x[j]

y 1m
a m
n
c = stdarray.create2D(n,0.0)
for i in range(n):
for j in range(m):
c[j] += y[i] * a[i][j]

a = [[12,20,33,534],[25,69,55]]
for i in range((len(a))):
for j in range(len(a[i])):
stdio.write(a[i][j])

for row in a :
for v in row :
stdio.write(v)

a.index(value) #找a中值为value的位置
b = sorted(a) #把a正序排
b.reverse() #把b翻转

标准输入输出:

stdio.write(x) 输出:x
stdio.writeln() 换行
stdio.writef(‘Pi is approximately %w.pc’ ,str(math.pi))
在后面找数
w为占用长度 ,负号右补充,不足左填充
p为精度(如浮点数,字符串)f浮点数,d整数,s字符串,e科学计数法 如:%10.2s在后面找数 w为占用长度,p为精度(如浮点数,字符串)

stdio.isEmpty() 判断是否为空,为空停止 ctrl c结束
stdio.readInt() 读入一个数据并转换成整数
stdio.readFloat()

stdio.hasNextLine() 回车分隔
stdio.readline() 读一行
stdio.readAll() 读所有的数据
stdio.readAllInts()
stdio.readAllStrings()
stdio.readAllLines()

n = int(sys.argv[])

total = 0
for i in range(n):
total += stdio.readInt()

stdio.writeln('Sum is ’ + str(total))

total = 0
count = 0

while not stdio.isEmpty():
total += readFloat()
count += 1

avg = total/count

stdio.writeln('Sum is ’ + str(total))
stdio.writeln('Avg is ’ + str(avg))

Range = int(sys.argv[])

secret =random.randrange(1,Range+1)
stdio.write(‘guess it’)
stdio.writeln(Range)

guess = 0
while guess != secret:
stdio.write(‘What is your guess?’)
guess = stdio.readInt()
if (guess>secret):stdio.writeln(‘too high’)
elif (guess<secret):stdio.writeln(‘too Low’)
else:stdio.writeln(‘YOU WIN’)

绘图:

import stddraw

stddraw.setCanvasSize(w,h) #设置图形像素大小 默认512*512

stddraw.setXscale(x0,x1) #设置x轴范围
stddraw.setYscale(x0,x1)

stddraw.setPenRadius(0.1) #设置画笔粗细 默认0.005

stddraw.line(x0,y0,x1,y1) #画线

stddraw.point(x,y)

stddraw.show()

stddraw.circle(x,y,r) #画圆
stddraw.filledcircle(x,y,r) #画圆

stddraw.square(x,y,r) #正方形

stddraw.rectangle(x,y,w,h) #长方形

stddraw.polygon(x,y) #

def square(x):
return x*x

def hypot(a, b):
c = math.sqrt(square(a) + square(b))
return c

def hypot(a = 1, b = 1):
c = math.sqrt(square(a) + square(b))
return c

for i in range(1,len(sys.argv)): #sys.argv的数组长度
arg = int(sys.argv[i])
value = harmornic(a = arg, b =2)
stdio.writeln(value)

求平均值:

def mean(a):
total = 0.0
for v in a:
total += values
return total/len(a)

求向量点乘

def dot(a,b):
total = 0.0
for i in range(len(a)):
total += a[i] *b[i]
return total

交换位置

def exchange(a,i,j):
temp = a[i]
a[i] = a[j]
a[j] = temp

输出一维数组长度

def write1D(a):
stdio.writeln(len(a))
for v in a:
stdio.writeln(v)

def readFloat2D():
m = stdio.readInt() 维度
n = stdio.readInt() 列数
a = stdarray.create2D(m,n,0,0)
for i in range(m):
for j in range(n):
a[i][j] = stdio.readFloat()
return a

a = stdio.readAllbools()

0
bool(0) return False
bool(1) return True
bool() return False

bool(‘a’) return True

import sys
import stdio

help(stdio)

lo = int(sys.argv[1])
hi = int(sys.argv[2])
n = int(sys.argv[3])
a = stdio.readAllInts()
stdio.writeln(uniformInt(lo,hi))
stdio.writeln(bernoulli())
stdio.writeln(binomial(n))
stdio.writeln(discrete(a))
stdio.writeln(gaussian())

数组的读取: p175

迭代函数:

x = 3**100

bits = x.bit_length() #x的位数

print bits

len(s) #s字符串长度
s+t

s[i]
s[i:j]
s[s:i:j]

s<t

s in t #判断t中是否有x
s not in t

s.count(t) #t出现的次数

s.find(t,start) #找到第一个t返回位置,,若没有t返回-1

s.upper() #小写转大写
s.lower()

s.startswith(t) #判断x是否以t开头
s.endswith(t)

s.strip() #去除s开始前和结尾后的空格

s.replace(old,new)

s.split(delimiter) #分割字符串,默认空格,返回字符串数组

delimiter.join(s) #数组的拼接

def translate(dna):
dna = dna.upper
rna = dna.replace(‘T’,‘U’)
return rna

def isPalindrome(s):
n = len(s)
for i in range(n//2):
if s[i] !=s[n-1-i]:
return False
return True

s = sys.argv[1]
dot = s.find(’.’)
base = s[:dot]
ext = s[dot+1:]

query = sys.argv[]
while stdio.hasNextLine():
s = stdio.readLine()
if query in s:
stdio.writeln(s)

def isSorted(a):
for i in range(1,len(a)):
if a[i] <a[i-1]:
return False
return True

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值