Java继承与组合
你知道为什么会划分数据类型吗?—JAVA数据类型与变量
10 > 20 && 10 / 0 == 0等于串联小灯泡?—JAVA运算符
你真的知道怎样用java敲出Hello World吗?—初识JAVA
我真的讨厌一个个的学概念、记概念,特别是刚刚开始学语法时又要学很多什么数据类型有哪些什么的这些.我认为编程应该是实践的、操作性强的,所以我一直在想我能不能反过来:我在还不知道某种编程语言的语法前,先去敲一些代码,然后从这些实例出发,去学语法?各种各样的编程语言是相通的,各种各样的实例也是相通的、可举一反三的.接下来的14天,我将通过一个个实例讲解Python语法,我将举一反三,从“温度转换“到“python蟒蛇绘制“,快速掌握Python语法.
我们先用Pychar写一个小程序,从这个小程序出发,我们将快速学习到python中的基础语法.本章中涉及到的语法只是初始语法部分,后续章节将会详细讲解python语法.
"温度转换"实例编写:将两种温度体系转换.摄氏度转换为华氏度华氏度转换为摄氏度.
设计算法:
根据华氏和摄氏温度定义,利用转换公式如下
C =(F - 32)/18
F = C*1.8 +32
其中, C表示摄氏温度, F表示华氏温度
代码如下:
#TemConvert.py
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("输入格式错误")
温度转换程序共10行代码,但包含很多语法元素.如果我们能清楚理解这10行代码,将能够快速入门Python语言参考框架结构
下面我们将逐行分析、逐词理解通过分析这10行代码的学习举一反三,理解Python语法元素,我们将初步学习到:
程序的格式框架
命名与保留字
数据类型
语句与函数
单层缩进与多层缩进:缩进表达程序的格式框架严格明确:缩进是语法的一部分,缩进不正确程序运行错误
所属关系: 表达代码间包含和层次关系的唯一手段
长度一致: 程序内一致即可,一般用4个空格或1个TAB
单行注释:以#开头,其后内容为注释
# 这里是单行注释
多行注释: 以’''开头和结尾
'''这是多行注释第一行
这是多行注释第二行'''
命名规则: 大小写字母、数字、下划线和中文等字符及组合如: Tempstr,Python_Great,
注意事项: 大小写敏感、**首字符不能是数字、**不与保留字相同
Python和python是不同变量,123Python是不合法的
Python语言有35个保留字(也叫关键字),如
if elif, else, in
保留字是编程语言的基本单词,大小写敏感if 是保留字,If 是变量
Python中的数字类型包括:
与数学中整数的概念一致:整数(integer)是序列中所有数的统称,包括负整数、零与正整数,不包括小数、分数。没有取值范围限制.
pow(x,y)函数: 计算 xy,想算多大算多大
十进制: 101099,-217
二进制,以0b或OB开头: 0b010,-0B101
八进制,以0o或00开头: 0o123,-00456
十六进制,以0x或0X开头: 0x9a,-0X89
与数学中实数的概念一致:带有小数点的数字及分数.浮点数取值范围和小数精度都存在限制,但常规计算可忽略,取值范围数量级约-10307至10 308,精度数量级 10-16.
== 特别注意,浮点数间运算存在不确定尾数,不是bug ==
输入的十进制数在计算机中要表示成二进制数,两个二进制数相加存在限制,相加后存在不确定尾数.
0.1在计算机内部转二进制 0.1转二进制 二进制的0.1与二进制0.2计算 结果再转十进制
round(x,d): 对x四舍五入,d是小数截取位数
浮点数间运算与比较用round0函数辅助
不确定尾数一般发生在10-16左右,round0十分有效浮点数可以采用科学 科学计数法表示
使用字母e或E作为幂的符号,以10为基数,格式如下
e 表示 a*10
例如: 4.3e-3 值为0.0043 9.6E5 值为960000.0
与数学中复数的概念一致:形如a+bi(a、b均为实数)的数为复数,其中,a被称为实部,b被称为虚部,i为虚数单位.在众多编程语言中 ,只有Python语言提供了复数类型.空间变换,浮点数相关中经常用
下面我们先了解’‘温度转换’'中涉及到的数据类型.
字符串由一对单引号或一对双引号表示, 如
“请输入带有符号的温度值:” 或者c
字符串是字符的有序序列,可以对其中的字符进行索引"请”是“请输入带有符号的温度值: ” 的第个0字符
字符串有 2类共4种 表示方法
索引: 返回字符串中单个字符 <字符串>[M],如
“请输入带有符号的温度值:”[0] 或者 Tempstr[-1] (第一个或者最后一个字符)
切片***返回字符串中一段字符子串 <字符串>[M: NI,如
“请输入带有符号的温度值:”[1:3] 或者 Tempstr[o:-1] (第二个到第三个字符,注意编程中的范围通常是前闭后开的区间)
字符串切片高级用法
使用[M: N: K根据步长对字符串切片
-1指从后向前依次取出,相当于将字符串进行逆序
编写模板字符串判断浮点类型的输出方式
:e 采用科学计数法e形式表现浮点数
:E 采用科学计数法E形式表现浮点数
:f 指的是以通常的非科学计数法形式表示浮点数
:% 百分号形式表示浮点数
列表使用[]表示,采用逗号(,)分隔各元素,如
[F’,“f”]表示两个元素’F"和’f
使用保留字 in 判断一个元素是否在列表中,如
Tempstr[-1] in [c,c]判断前者是否与列表中某个元素
使用保留字if elif else构成条件判断的分支结构
if TempStr[-1] in [‘F’,‘f’]:#如果条件为True则执行冒号后语句
每个保留字所在行最后存在一个冒号(,这是语法的一部分
冒号及后续缩进用来表示后续语句与条件的所属关系
eval()函数的基本使用格式:eval(<字符串或字符串变量>)
举一些例子说明eval()函数的使用:
eval(TempStr[0:-1])
如果Tempstr[o:-1]值是"12.3",输出是:
12.3
如果c的值是 123.456789,则输出结果为
转换后的温度是123.45C
input0函数的使用格式:
<变量> = input(<提示信息字符串>)用户输入的信息以字符串类型保存在<变量>中
Tempstr = input(“请输入”) # Tempstr保存用户输入的信息
通过’‘温度转换’'我们可以举一反三到计算各种问题的扩展:
温度转换问题是各类转换问题的代表性问题, 如
货币转换、长度转换、重量转换、面积转换…
问题不同,但程序代码相似