基础
输入输出
2.7
print 'hello, world' //可以这样
name = raw_input('请输入字符串')
3.0
print('hello, world')
name = input('请输入字符串')
数据类型和变量
转义字符
转义字符 | 描述 |
---|---|
\(在行尾时) | 续行符 |
\\ | 反斜杠符号 |
' | 单引号 |
' | 单引号 |
" | 双引号 |
a | 响铃 |
b | 退格(Backspace) |
e | 转义 |
000 | 空 |
n | 换行 |
v | 纵向制表符 |
t | 横向制表符 |
r | 回车 |
f | 换页 |
oyy | 八进制数yy代表的字符,例如:o12代表换行 |
xyy | 十进制数yy代表的字符,例如:x0a代表换行 |
other | 其它的字符以普通格式输出 |
不转义
r' '
>>> print('\\\t\\')
\ \
>>> print(r'\\\t\\')
\\\t\\
布尔值
>>> True
True
>>> False
False
>>> 3 > 2
True
>>> 3 > 5
False
尔值可以用and、or和not运算。
>>> True and True
True
>>> True and False
False
>>> False and False
False
>>> 5 > 3 and 3 > 1
True
or运算是或运算,只要其中有一个为True,or运算结果就是True:
>>> True or True
True
>>> True or False
True
>>> False or False
False
>>> 5 > 3 or 1 > 3
True
not运算是非运算,它是一个单目运算符,把True变成False,False变成True:
>>> not True
False
>>> not False
True
>>> not 1 > 2
True
布尔值经常用在条件判断中,比如:
if age >= 18:
print('adult')
else:
print('teenager')
空值
空值是Python里一个特殊的值,用None表示
。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。
变量在程序中就是用一个变量名表示了,变量名必须是大小写英文、数字和_的组合
,且不能用数字开头
a = 1
t_007 = 'T007'
Answer = True
a = 123 # a是整数
print(a)
a = 'ABC' # a变为字符串
print(a)
这种变量本身类型不固定的语言称之为动态语言,与之对应的是静态语言。静态语言在定义变量时必须指定变量类型,如果赋值的时候类型不匹配,就会报错。例如Java是静态语言,赋值语句如下(// 表示注释):
int a = 123; // a是整数类型变量
a = "ABC"; // 错误:不能把字符串赋给整型变量
最后,理解变量在计算机内存中的表示也非常重要。当我们写:
a = 'ABC'
时,Python解释器干了两件事情:
在内存中创建了一个'ABC'
的字符串;
在内存中创建了一个名为a的变量,并把它指向'ABC''
。
也可以把一个变量a
赋值给另一个变量b
,这个操作实际上是把变量b指向变量a所指向的数据,例如下面的代码:
a = 'ABC'
b = a
a = 'XYZ'
print(b)
最后一行打印出变量b的内容到底是'ABC'
呢还是'XYZ'
?如果从数学意义上理解,就会错误地得出b和a相同,也应该是'XYZ'
,但实际上b的值是'ABC'
,让我们一行一行地执行代码,就可以看到到底发生了什么事:
执行a = 'ABC'
,解释器创建了字符串'ABC'和变量a
,并把a指向'ABC'
:
执行b = a
,解释器创建了变量b
,并把b指向a指向的字符串'ABC'
:
执行a = 'XYZ'
,解释器创建了字符串'XYZ'
,并把a的指向改为'XYZ'
,但b并没有更改
:
所以,最后打印变量b的结果自然是'ABC'
了。
常量
在Python中,通常用全部大写的变量名表示常量
:
PI = 3.14159265359
但事实上PI仍然是一个变量,Python根本没有任何机制保证PI不会被改变,所以,用全部大写的变量名表示常量只是一个习惯上的用法,如果你一定要改变变量PI的值,也没人能拦住你。
在Python中,有两种除法,一种除法是/:
>>> 10 / 3
3.3333333333333335
/除法计算结果是浮点数,即使是两个整数恰好整除,结果也是浮点数:
>>> 9 / 3
3.0
还有一种除法是 //,称为地板除,两个整数的除法仍然是整数:
>>> 10 // 3
3
你没有看错,整数的地板除//永远是整数,即使除不尽。要做精确的除法,使用/就可以。
因为//除法只取结果的整数部分,所以Python还提供一个余数运算,可以得到两个整数相除的余数:
>>> 10 % 3
1
无论整数做//除法还是取余数,结果永远是整数,所以,整数运算结果永远是精确的。
练习
n = 123
f = 456.789
s1 = 'Hello, world'
s2 = 'Hello, \'Adam\''
s3 = r'Hello, "Bart"'
s4 = r'''Hello,
Lisa!'''
评论已关闭