计算机时根据指令来操作数据的设备,具有功能性和可编程性;
摩尔定律:单位面积集成电路上可容纳晶体管的数量约每两年翻一番
功能性:对数据的操作,表现为数据计算、输入输出处理和结果储存等
可编程性:根据一系列指令自动地、可预测地、准确地完成操作者的意图
源代码:采用某种编程语言编写的计算机程序,人类可读
目标代码:计算机可以直接执行,人类不可读
compilation and interpretation
compilation:源代码->编译器->目标代码->(程序输入)->程序执行->结果输出
interpretation:将源代码逐条转换为目标代码的过程:源代码&程序输入->解释器->结果输出
静态语言:编译执行,C/C++,Java等,程序更快
脚本语言:解释执行,python,JavaScript,PHP等,维护方便
序基本编写方法:
IPO:
I:input,需要处理的数据
P:process,通过算法处理,算法是一个程序的灵魂
O:output,展示运算结果的方式
需要理解什么是问题的计算部分:
1.确定IPO
2.编写程序
3.调试程序
计算机编程那些事儿
抽象化交互关系,计算思维
数学:逻辑思维;物理:实验思维
提升自己的能力,创造世界
Python由PSF拥有,开放、开源
开发环境配置略
python的两种编写运行方式:
r = 25
aera = 3.1415*r*r
print(aera)
1963.4375000000002
print('{:.2f}'.format(aera))
1963.44
import turtle
turtle.pensize(10)
turtle.circle(2)
turtle.circle(10)
turtle.circle(40)
turtle.circle(80)
turtle.circle(160)
from turtle import*
color('red','red')
begin_fill()
for i in range(5):
fd(200)
rt(144)
end_fill()
done()
摄氏度和华氏度相互转换
理解1:直接将温度进行转换
理解2:将温度发布声音和图像进行理解和转换
理解3:爬取网上温度进行转换
采取理解1进行在计算,边界如下:
输入:带华氏或者摄氏温度标志的温度值
处理:根据温标选取适当的转换算法
输出:待摄氏或者华氏温标的温度值
格式设计:标识放在数字之后,F表示华氏,C表示摄氏
算法设计:
利用公式:
C = ( F − 32 ) / 1.8 C=(F-32)/1.8 C=(F−32)/1.8和 F = C ∗ 1.8 + 32 F=C*1.8+32 F=C∗1.8+32
进行换算,其中,C为摄氏,F为华氏
#TempConvert
TempStr = input('请输入带有温度符号的温度值:')
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('输入格式错误')
转换后的温度是46.40F
目标:理解10行左右的python小程序
1.程序格式框架:
缩进:代码前的空白区域,表示程序的格式框架 python中是语法的一部分,表达代码间包含和层次关系的唯一手段,单一程序内,缩进的长度相同
注释:勇于提高代码可读性的辅助性文字,不被程序所执行,用来标注程序功能,提高代码可读性,单行以#开头,多行以’’'开始和结束
2.命名与保留字
变量:程序中用于保存和表示数据的占位符号,采用标识符(名字)表示,关联标识符的过程叫做命名,可以使用赋值符号(=)向变量赋值或者修改值
命名规则:大小写字母、数字、下划线和汉字及组合,命名大小写敏感,首字符不能是数字,保留字不能用(33个保留字)
3.数据类型
程序语言要求无歧义,需要定义数据的形式,因此程序设计语言通过一定的方式向计算机表达数据的形式
字符串中序号从0开始
正向递增序号,反向递减字符
因为字符串有序号,可以进行索引和切片
索引:返回字符串的单个字符,使用方式:<字符串> [M]
切片:返回字符串中一段字符,使用方式:<字符串>[M:N]
整数类型,浮点数类型,列表类型([]表示。中间用逗号分隔)
4.语句与函数
赋值语句:由赋值符号构成的一行代码
分支语句:由判断条件决定程序运行方向的语句,分支语句最后一定要有冒号(:)
函数:根据输入产生不同输出的功能过程
5.python程序的输入输出
input()函数:<变量> = input(<提示信息字符串>)
ptint()函数:print(<拟输出的字符串>)
print()函数的格式化:可以用{}表示槽,后续变量可以填充到槽中
eval():去掉参数最外侧引号并执行余下语句的函数(评估函数)
描述
获得用户输入的一个整数,参考该整数值,打印输出"Hello World",要求:
如果输入值是0,直接输出"Hello World"
如果输入值大于0,以两个字符一行方式输出"Hello World"(空格也是字符)
如果输入值小于0,以垂直方式输出"Hello World"
#HelloWorldCondition
s = "Hello World"
num = input()
if eval(num) == 0:
print(s)
elif eval(num) > 0:
st=""
for i in range(len(s)):
if(i+1)%2 != 0:
st = st+s[i]
if len(s) == (i+1):
print (st)
else:
st = st+s[i]
print(st)
st = ""
else:
for i in s:
print(i)
He
ll
o
Wo
rl
d
描述
获得用户输入的一个字符串,格式如下:
M OP N
其中,M和N是任何数字,OP代表一种操作,表示为如下四种:+, -, *, /(加减乘除)
根据OP,输出M OP N的运算结果,统一保存小数点后2位。
注意:M和OP、OP和N之间可以存在多个空格,不考虑输入错误情况。
#Calculater(个位数加减法)
cal = input()
if ('+') in cal[1:-1]:
print(eval(cal[0])+eval(cal[-1]))
elif ('-') in cal[1:-1]:
print(eval(cal[0])-eval(cal[-1]))
elif ('*') in cal[1:-1]:
print(eval(cal[0])*eval(cal[-1]))
elif ('/') in cal[1:-1]:
print(eval(cal[0])/eval(cal[-1]))
42
string = input() #输入一个字符串
op_num = 0 #定义操作字符值为0
op = ['+','-','*','/'] #定义操作字符
for i,s in enumerate(string):
if s in op and i!=0:
op_num = i
if string[0] =='-':
num1 = -float((string[1:i]).strip())
elif string[0:2]== '0x':
num1 = int(eval((string[:i]).strip()))
else:
num1 = float((string[0:i]).strip())
num2 = float((string[i+1:]).strip())
if s == op[0]:
print('{:.2f}'.format(num1 + num2))
elif s == op[1]:
print('{:.2f}'.format(num1 - num2))
elif s == op[2]:
print('{:.2f}'.format(num1 * num2))
else:
print('{:.2f}'.format(num1 / num2))
42.00