python3语法基础知识_Python语法笔记 - 基础知识

本文是作者的Python语法学习笔记,适合已经熟悉Java的程序员阅读。文章介绍了Python的基础知识,如__future__导入新特性、长整型、字符串操作、Unicode字符串、注释和编码,并提醒读者Python2与Python3的区别,强调了解决问题的重要性而非语言之争。
摘要由CSDN通过智能技术生成

本文为博主原创文章,请遵守文章最后的版权申明。

有很多程序员在学习一门技术之前,都会有一番思想斗争。究竟要不要花时间去学?学了有什么意义?我大Java包办一切,何必要去学那些“旁门左道”!呵呵!在我深入接触这门语言之前,我也曾这样想过。但现在不会了!人生苦短,何必非要争个武功高低呢?解决问题才是王道!在特定的场景下,用Java并不见得有其他语言管用。所以,虽然我已经有了Java,但是Python,我依然需要你!本文是我的《Python语法笔记》系列文章的第一篇。

这篇文章我在学习Python语言的过程中整理的读书笔记,在此分享给务实的同学们。目前Python2在市场上所占比重依然高于Python3,所以下述Python如果没有特殊指明均指Python2(我机器上是Python2.7)。这个系列的文章内容组织形式主要参考《Python基础教程》一书,大多知识也是源于此书。入门的同学可以自己找一本看看。

基础知识

__future__

通过import这个神奇的包可以把未来会成为标准的新特性导入进来。

比如,默认情况下,Python2除法是地板除,会把余数丢弃。

a = 3 / 2

print a # --> 1

from __future__ import division

a = 3 / 2

print a # --> 1.5

在Python3中默认除法就是精确的除法,会保留小数。如果需要地板除则需要用//。

长整型

Python中普通整数范围为-2147483647 ~ 2147483647。正常情况下不用关心整数范围问题,Python将会自动转换。所以整型与长整型是可以混用的。

如果有必要的话,可以通过在数字后面加上l(小写的字母L)或者L来指定数字为长整型。

十六进制、八进制

print 0xAF # --> 175

print 010 # --> 8

注意这里是0打头,不是字母o。

算术表达式

加减乘除、地板除、求余、乘方。

a = 1

b = 2

c = (a + b * (a + b)) / 2

print c # --> 3

c = (a + b * (a + b)) / 2.0

print c # --> 3.5

print c % 3 # --> 0.5

print 2 ** 10 # --> 1024

字符串

Python中双引号、单引号等效。

拼接字符串用+号。

Python中还有一种特殊的拼接字符串的方式,只需要把两个字符串连续的写出,Python就会自动拼接两个字符串为一个。

print('hello, zenghui!'); # --> hello, zenghui!

print("hello, zenghui!"); # --> hello, zenghui!

print("hello, " + "zenghui!"); # --> hello, zenghui!

print("hello, " "zenghui!"); # --> hello, zenghui!

print("hello, ""zenghui!"); # --> hello, zenghui!

print("hello, " "zenghui" "!"); # --> hello, zenghui!

str与repr

str()将值转换为人看的字符串,repr将对象转换为Python字符串的表现形式。

print(str("hello elvin!")); # --> hello elvin!

print(repr("hello elvin!")); # --> 'hello elvin!'

另外repr()也可以用一对反引号来实现。

print(`"hello elvin!"`); # --> 'hello elvin!'

不过反引号的形式在Python3中已经被废弃,属于一个历史遗留的东西。能看懂就行,在自己写的代码中建议不要使用。

长字符串

Python可以用三个引号替代普通引号来书写长字符串,而且这个长字符串允许跨越多行。

print """hi,

my name is "zenghui",

and my English name is 'Elvin Zeng'."""

output

hi,

my name is "zenghui",

and my English name is 'Elvin Zeng'.

另外,在这里用三个单引号也是相同的效果。

原始字符串

在字符串前加个r表示这个字符串内的所有内容不转义,直接原样输出。类似于C#中的@。比如print r"elvin\nzeng",这里\n就会直接输出,而不是变成换行。

注意最后一个引号之前不要加反斜杠,比如print r"C:\Users\elvin\",这样会出错。这种情况需要一些小技巧,比如print r"C:\Users\elvin" "\\",这样就不会出问题。

Unicode字符串

Python2中Unicode字符串是Unicode对象,与字符串其实并不是同一个类型。

Python中普通字符串内部是以8位的ASCII码来存储的,而Unicode则存储为16位Unicode字符。

print u"hello, elvin!" # --> hello, elvin!

Unicode字符串用u作为前缀。

在Python3中所有字符串都是Unicode字符串。

注释

单行注释

就是一个#号

多行注释

其实没有什么多行注释,只是可以利用Python的多行的字符串。

#!/bin/env python

# -*- coding:utf-8 -*-

print "hello"

'''

这里是多行注释

zenghui到此一游...

'''

print "world!"

编码注释

在Python中如果用到了中文字符,通常都需要在文件头第二行加上编码注释。

#!/bin/env python

# -*- coding:utf-8 -*-

print "hello"

更加详细的说明可以参考这篇文章

读取用户输入

在Python2中可以用raw_input函数读取用户输入的数据,读取到的数据为字符串。input函数也可以读取用户输入,不过这个函数会把用户输入当作Python表达式。

>>> raw_input("please input:")

please input:hello, elvin!

'hello, elvin!'

>>> input("please input:")

please input:"hello, elvin!"

'hello, elvin!'

>>> input("please input:")

please input:hello, elvin!

Traceback (most recent call last):

File "", line 1, in

File "", line 1

hello, elvin!

^

SyntaxError: unexpected EOF while parsing

在Python3中,原来的raw_input已经被重命名为了input。

Python -m

模块形式执行文件与直接执行文件是有区别的,主要影响sys.path这个变量。直接启动python文件是把py文件所在目录放到了sys.path中。模块形式启动是把当前工作目录放到了sys.path中。

详细情况可以参考这篇文章

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值