1 数据
1.1 基本数据类型
1.1.2 数字类型
x//y x与y整数商,即不大于x与y之商的最大整数
x的y次幂,即
(x+yj).real 复数的实部;(x+yj).imag 复数的虚部
1.1.3 优先级
等于
,顺序从右向左
1.2 组合数据类型
1.2.1 序列类型
列表类型
注意N和M之间的符号是引号 ;
1.2.2 集合类型
1.2.4 映射类型
1.3
(1)保留字(也称为关键字)def可以定义函数(见附录3)
(2)缩进用来表示代码之间的包含和层次关系,表达了所属关系
(3)IPO(Input,Process,Output)
(4)编译是将源代码转换成目标代码的过程;解释是将源代码逐条转换成目标代码同时逐条运行目标代码的过程。解释和编译的区别在于编译是一次性的翻译,一旦程序被编译,不再需要编译程序或源代码;解释则在每次程序运行时都需要解释器和源代码。
(5)使用保留字import引用函数库:
① import <库名>;在之后使用函数库中的函数:<库名>.<函数名>(<函数参数>);
②from <库名> import <函数名,函数名,.....,函数名> 或 from <库名> import * (*是通配符,表示所有函数);调用函数:<函数名>(<函数参数>);
③import <库名> as t (t是标识符);调用函数:t.<函数名>(<函数参数>)
个人感觉,要是在程序开发时,①合适,在做acm之类的题时,③合适
(6)命名标识符:首字母不能是数字,中间不能出现空格,长度理论上没有限制
(7)(python)如何让两个连续print函数的输出在同一行显示_ohplz的博客_python两个print输出在同一行
(8)同步赋值语句;
>>>x=1,y=2
>>>x,y=y,x
x = 2, y = 1
1.4 基本结构
1、for循环
(1)for循环遍历字符串
str = "这是一个字符串"
for it in str:
print(it,end="")
#如果不加,end=""那么每一个字符输出结束,都会自动输出一个回车符
(2)for循环进行数值循环
#计算1到5的累加
num = 5
sum = 0
for i in range(5):
sum += i
print(sum)
'''
不可以将range(5)换成num,
否则会提示错误TypeError: 'int' object is not iterable
'''
(3)for循环遍历列表和元组
my_list = [1,2,3,4]
for i in my_list:
print("list = ",i)
(4)for循环遍历字典
my_dic = {'1':"钟离",'2':"艾尔海森",'3':"魈",'4':"万叶"}
for i in my_dic:
print("my_dic = ",i)
#字典用大括号;列表和元组用中括号
1.5 函数和代码复用
3 标准库
3.1 内置函数
input()函数:无论用户输入什么,input()函数都以字符串类型返回结果
eval(<字符串>):将输入的字符串转变为Python语句,并执行该语句。输入字符串“hello”,eval()函数去掉引号后,将其解释为一个变量,由于之前没有定义过hello变量解释器会报错;如果输入字符串“‘hello’”,eval()函数去掉
print(<待输出字符串>):print()函数用槽格式和format()方法将变量和字符串结合到一起输出
3.1.1 数值运算函数
abs(x) x的绝对值,复数x的模
divmod(x,y) 返回(x//y,x%y),输出为二元组形式
pow(x,y[,z]) (x**y)%z,[...]表示该参数可以省略,与math库中的pow(x,y)函数区别;
round(x[,ndigits]) 对x进行常规的四舍五入,保留ndigits位小数
max(
,
,...,
) min(
,
,...,
)
3.1.2 数字类型转换函数
int(x) 将浮点数形式、整数或浮点数的字符串的x转换为整数,不可以是复数
float(x) 将整数形式、整数或浮点数的字符串的x转换为浮点数,不可以是复数
complex(re[,im]) 将整数形式、整数或浮点数或复数的字符串的x转换为复数,自动加括号
3.1.3 eval()与三种数字类型转换函数的区别
eval() 在转换复数的字符串时自动加小括号
3.2 turtle库
import turtle as t
t.setup(width,height,startx,starty)设置主窗体的大小和位置,width:窗口宽度,整数表示像素值,值是小数,表示窗口宽度与屏幕的比例;height:窗口高度,如果值是整数,表示像素值,值是小数,表示窗口高度与屏幕比例;startx窗口左侧与屏幕左侧的像素距离,None,窗口位于屏幕水平中央;starty窗口顶部与屏幕顶部的像素距离,若为None,表示窗口位于屏幕垂直中央
t.penup()[t.pu();t.up()];t.pemdown()[t.pd();t.down()];这两个总是忘记加括号QWQ,作用顾名思义
t.circle(radius,extent=None)根据半径绘制extent角度的弧形,可不设置extent
t.pensize(width)(或t.width())用来设置画笔尺寸,若width为None或空,函数返回当前画笔宽度
t.pencolor("colorstring")给画笔设置颜色
3.3 time库
time库与datetime的区别
3.4 radom库
附录 程序实例
附录1 典型问题
1、忘记缩进;
2、Python是区分大小写
3、if i %7 in (0)错误小括号内不能只有0,原因;
附录2 温度转换
2.1 输入N或n时退出
TemStr = input("请输入带有符号的温度值:")
while TempStr[-1] not in ['N','n']: #列表
if TempStr[-1] in ['F','f']:
C = (eval(TempStr[0:-1]) - 32) / 1.8
print("转换后的温度是{:.2f}C".format(C))
elif TempStr[-1] in ['C','c']:
F = 1.8 * eval(TempStr[0:-1]) + 32
print("转换后的温度是{:.2f}F".format(F))
else:
print("输入格式错误")
TempStr = input("请输入")
2.2用保留字def定义函数
def tempConvert(ValueStr):
if ValueStr[-1] in ['f','F']:
C = (eval(ValueStr[0:-1]) - 32) / 1.8
print("转换后的温度是:{:.2f}C".format(C))
elif ValueStr[-1] in ['C','c']:
F = eval(ValueStr[0:-1]) * 1.8 - 32
print("转换后的温度是:{:.2f}F".format(F))
else:
print("输入格式错误")
TempStr = input("请输入带符号的温度值:")
tempConvert(TempStr)
附录3 天天向上的力量
def dayUP(df):
dayup = 1.0
for i in range (365)://也可以range(365)
if i % 7 in [6,0]:
dayup = dayup * (1 - 0.01)
else:
dayup = dayup * (1 + df)
return dayup
dayfactor = 0.01
while (dayUP(dayfactor) < 37.78):
dayfactor += 0.001
print("每天努力的参数是:{:.3f}.".format(dayfactor))
附录4 科赫曲线
4.1
#科赫曲线
import turtle
def koch(size,n):
if n==0:
turtle.fd(size)
else:
for angle in (0,60,-120,60):
turtle.left(angle)
koch(size/3,n-1)
def main():
turtle.setup(800,400)
turtle.speed(0)
turtle.penup()
turtle.goto(-300,-50)
turtle.pendown()
turtle.pensize(2)
koch(600,3)
turtle.hideturtle()
main()
4.2 雪花
# # This is a sample Python script.
#
# # Press Shift+F10 to execute it or replace it with your code.
# # Press Double Shift to search everywhere for classes, files, tool windows, actions, and settings.
#
#
# def print_hi(name):
# # Use a breakpoint in the code line below to debug your script.
# print(f'Hi, {name}') # Press Ctrl+F8 to toggle the breakpoint.
#
#
# # Press the green button in the gutter to run the script.
# if __name__ == '__main__':
# print_hi('PyCharm')
#
# # See PyCharm help at https://www.jetbrains.com/help/pycharm/
from math import sqrt
def GetNum():
nums = []
iNumStr = input("请输入数字(直接输入回车退出):")
while iNumStr != "":
nums.append(eval(iNumStr))
iNumStr = input("请输入数字(直接输入回车退出):")
return nums
def mean(numbers): #平均值
s = 0.0
for num in numbers:
s = s + num
return s / len(numbers)
def dev(numbers,mean): #计算标准差
sdev = 0.0
for num in numbers:
sdev = sdev + (num-mean) ** 2
return sqrt(sdev / (len(numbers)-1))
def median(numbers): #;sorted是python的内置函数,并不是可变对象(列表、字典)的特有方法,sorted()函数需要一个参数(参数可以是列表、字典、元组、字符串),无论传递什么参数,都将返回一个以列表为容器的返回值,如果是字典将返回键的列表。
new = sorted(numbers)
size = len(numbers)
if size % 2 == 0:
med = (new[size//2-1]+new[size//2])/2 #//整数商,不大于x与y之商的最大整数
else:
med = new[size//2]
return med
def main(): #主函数
n = GetNum()
m = mean(n)
print("平均值:{},标准差:{:.2},中位数:{}.".format(m,dev(n,m),median(n)))
return 0
main()