Python学习笔记-第一章 基础知识


心血来潮想重拾编程,原来学的那点C语言早就还给老师了,觉得还是学个实用又简单的,于是选了Python,按照《Python基础教程第二版》学了两章,书里面用的python版本是2.5.x,我下的是3.4.2,发现python在3.0以后的版本差异还是挺大的,遂重开博客,记录一下吧。

第一章 基础知识

1.1 安装

官网下载安装什么的就不说了,过程中没有遇到任何问题,一切顺利。WIN7 64位+Python IDLE。话说这个截止到最新版本好像还是不会显示行号?只能通过查找行号来看,不是很方便。

1.2 交互式解释器

在>>>后输入你的代码就好了,不会的F1,Python一行就是结束,不需要分号

print "hello,world!"

居然第一步就出现了红叉叉! 好吧,记住喽, 新的print格式是酱紫滴:

print("hello,world!") 

say过hello了,算是进入python世界了吧。


1.3 算法是什么

计算机程序设计就是要告诉计算机做什么,算法就是具体的细节,类似于食谱的东西,教会计算机每一步怎么做。

它包括要素(对象,物品)及指令(语句)。

print("hello,world!") #给我显示"hello,world!"

1.4 数字和表达式

它是个强大的计算器,常用的加减乘除都可以直接输入,它能识别的。

新版本已经可以自动显示浮点数了,试验了一下,最高显示到小数点后16位。如果想要整除的话,就要用//了。

1/2 #显示结果跟1.0/2.0是一样的咯,都是0.5,很聪明吧。
1//2 #结果是0,
1.0//2.0 #结果是0.0

+,-,*,/,加减乘除就是常见符号,此外还有

%:取余运算符。 X%Y的结果为X除以Y的余数

**:幂运算符,乘方。优先级高于取反。如果要计算(-3)**2,需要加括号。

1.4.1 长整型数

新版本在长整型末尾已经不会加L了。直接显示数字。

1.4.2 十六进制和八进制

0xAF  #这个十六进制数的转换还是可以使用,结果显示正确的175
>>> 010
SyntaxError: invalid token
0o10  #这样才会出现正确的结果8,注意第2位是字母O哦,但是尝试了0o20又会报错,搞不清楚python的逻辑抓狂
其实有更简单的方法来实现不同进制到10进制数的转换

int('X',Y),把X换成你想转换的数字,Y是你用的这个数字的进制

比如想把八进制数字010转换成10进制,

>>> int('010',8) #正确的数字8就乖乖的出来啦!
1.5 变量

就是用来代表这个值的名字,X,Y之类的。

使用变量之前要先赋值,就是介绍一下这是个什么东东,不然谁知道你X是代表染色体还是未知数啊。

第一步X=3,第二步X*2,电脑才会乖乖显示6。

1.6 语句

语句就是告诉计算机要做什么,

2*2跟print 2*2的结果并没有什么不同。

1.7 获取用户输入

input函数

新版本中必须强调变量为数值型才会进行运算,前面可以int或float等。

x=int(input("x:"))  #电脑会提示你输入X的值
y=int(input("y:"))  #电脑会提示你输入Y的值
print(x*y)    #这里的结果就是你输入两个值的乘积。

1.8 函数

系统内自定义了一些小程序,比如pow代替幂运算,

使用2**3,跟用pow(2,3)是一样的结果。

其它函数:

abs:绝对值,abs(-10)=10

round:四舍五入,round (1/2)显示结果为0。新版本做了改变的是(1.0/2.0)结果会返回0,所有结果正好为0.5的会自动舍去,如果比0.5大一点,哪怕是0.50000(无限个0)1,都会五入。

1.9 模块

导入到python以加强功能的扩展,需要用import命令来导入,然后按照模块.函数的格式来使用。

import math
math.floor(32.9) #floor表示取整,所以结果显示32.0,年龄一般都是整数,
int(math.floor(32.9)) #显示结果32
不希望每次调用函数时都要写上模块名,可以用from模块import函数来调用,这种方式可能导致类命名冲突,尽量不要使用。

from math import sqrt
sqrt(9) #结果显示3.0

1.9.1 cmath和复数

cmath表示复数,可以计算虚数。

import cmath
cmath.sqrt(-1) #显示结果1j,即虚数。

1.10 保存并执行程序

用file-new window打开一个数的编辑窗口,即可以实现编写完后统一运行。保存为*.py后按F5运行。

name=input("what is your name?") #新版本已没有raw_input,直接用input
print("hello,"+name+"!") 

注释: #后的文字表示注释的文字

1.11 字符串

1.11.1 单双引号字符串和转义引号

单引号跟双引号显示结果没有区别,在某些场合下可能会出现识别不出来,如'Let's go',电脑不知道该如何处理了,因为出现了三个单引号,用双引号可以避免这种误解。

此外还可以使用转义符反斜线(\)。

‘let\'s go!' #\表示后面的是一个字符。
转义符如果用在句末,会忽略换行符

>>>print("hello,\
world!") 

Hello world!


1.11.2 拼接字符串

用一个接另一个的方式写两个字符串,python会自动拼接它们。

“Let's say" '"hello,world!"'#会输出'Let\'s say "hello world!"'
此外还可以用+,像加法运算一样使用

x="hello,"
y="world!"
x+y           #结果显示'hello,world!'

1.11.3 字符串表示str和repr

str函数,会把值转换成合理形式的字符串。(即不显示引号)

repr会创建一个字符串,以python表达式的形式来表示值。

>>> print(repr("hello,world!"))      
'hello,world!'
>>> print(repr(10000L))  #新版本已不用在长整型后加L,加了反而会报错
SyntaxError: invalid syntax
>>> print(str("hello,world"))
hello,world

1.11.5 长字符串、原始字符串和Unicode

如果要写一个非常长的字符串,要跨多行,就要用三个引号代替普通引号,三个单引号或者三个双引号都可以('''或"""),并且不需要反斜线进行转义。

原始字符串的使用:

如换行符写成\n,放于字符串中,会有换行的作用,但是会出现歧义,比如C:\nowhere,可以写成c:\\nowhere来避免,但是如果是长路径呢?就需要写很多\了.

原始字符串以r开头,

>>> print(r'let\'s go!')
let\'s go

最后一个字符(位于结束引号前的那个)不是能是反斜线。
Unicode字符串,使用u前缀,跟r用法一样。新版本中,所有字符串都是unicode字符串。


你可能感兴趣的:(Python)