《Python基础教程》学习笔记 Chap1 基础知识

1、数字和表达式

/

 除法:如果参与除法的两个数都是整数,则计算结果的小数部分会被截除,只留下整数部分;如果参与除法的两个数中有一个为浮点数(Float),则运算结果为浮点数。

>>> 1/2
0
>>> 1.0/2
0.5


// 

双斜线也表示整除,即使参与运算的数字都是浮点数,也会执行整除,只是结果仍然是浮点数。

>>> 5//2
2
>>> 5.0//2
2.0


%

取余(模除)运算符,x%y的结果为x除以y的余数。

>>> 5%3
2
>>> 5.0%3
2.0
>>> 2.75%0.5
0.25


**

幂(乘方)运算符

>>> 2**3
8

>>> (-3)**2
9
>>> -3**2
-9

注:幂运算比取反(意愿减运算符)的优先级高,所以-3**2相当于-(3**2)。


长整数

和普通整数一样,但是结尾有个L,小写l也可以,只是容易跟数字1混淆,建议用大写L。

>>> 1000000000000000000000
1000000000000000000000L


十六进制0x(0X)开头

>>> 0x25
37
>>> 0X26
38


八进制 0开头

>>> 025
21


2、变量

变量名可以包括字母、数字、下划线(_),但是不能以数字开头。使用变量之前要对其赋值。

>>> x=5
>>> x*3
15


3、input 获取用户输入

>>> input('x = ')
x = 3
3
>>> input('current number is : ')
current number is : 15
15

4、函数

pow(x, y[, z]) 幂运算,相当于x**y(所得结果对z取模)

abs(x) 取x的绝对值

round(x[, y]) 根据给定的精度将结果四舍五入为最接近的整数

cmath.sqrt(x) 返回平方根,也可以应用于负数

float(x) 将字符串和数字转换为浮点数

input(x) 获取用户的输入

raw_input(x) 获取用户输入,结果被看做原始字符串

int(x) 将字符串和数字转换为整数

long(x) 将字符串和数字转换为长整型数

math.floor(x) 向下取整为某个特定的整数

math.ceil(x) 向上取整为某个特定的整数

math.sqrt(x) 返回平方根,不适用于负数

repr(x) 返回值的字符串表示形式

str(x) 将值转换为字符串

>>> pow(2,3)

8
>>> abs(-10)
10
>>> round(2.6)
3.0
>>> round(2.4)
2.0

>>> import math
>>> math.floor(2.5)
2.0
>>> math.floor(3.9)
3.0
>>> from math import floor
>>> floor(2.1)
2.0

>>>import math 
>>> math.sqrt(2)
1.4142135623730951

>>> import cmath
>>> cmath.sqrt(-2)
1.4142135623730951j

注:这里使用特殊的命令import来导入了模块(math),模块可以想象成导入到Python中以增强其功能的扩展。用import导入了模          块之后,然后按照“模块.函数”的格式使用这个模块的函数。另一种使用了“from 模块 import 函数 ”的形式可以直接使用函数,而        不需要模块名作为前缀。但是对于这中形式,如果不同模块中有同名函数,就会出现命名冲突。如上述例子中math中的sqrt函          数和cmath(复数)中的sqrt。


5.运行

在脚本首行前面加上#!(叫做pound bang或者shebang),在其后面加上用于解释脚本的程序的绝对路径,即#!/usr/bin/env python

$ Python multiply.py
Sentence is : Hello , world !


6.字符串

Python输出的字符串是用单引号括起来的,不管输入的时候用的是单引号还是双引号,这是因为Python打印值的时候会保持该值在Python代码中的状态,而不是你希望用户看到的状态。单双引号的交替使用可以避免输入的字符串中有单撇号‘时出现错误。当然也可以对字符串中的单撇号使用反斜杠(\)进行转义。

>>> "Let's go"
"Let's go"
>>> "Let\'s go"
"Let's go"
>>> 'Let\'s go'
"Let's go"
>>> 'Let\'s say "Hello , world !"'
'Let\'s say "Hello , world !"'


字符串拼接

可以使用一个接着另一个字符串的方式写两个字符串,也可以使用“+”连接。

>>> "Let's say"'"Hello, world!"'
'Let\'s say"Hello, world!"'
>>> x = 'Hello'
>>> y = ', world'
>>> x+y
'Hello, world'


str和repr

str函数,它会把值转换为合理形式的字符串,以便用户可以理解;而repr函数,它会创建一个字符串,以合法的Python表达式的形式来表示值。

>>> print repr('Hello , world')
'Hello , world'
>>> print str('Hello , world')
Hello , world
>>> print repr(10000L)
10000L
>>> print str(10000L)
10000

注:repr(x)也可以写作·x·(注意,·反引号,而不是单引号)。如果希望打印一个包含数字的句子,那么反引号就很有用了。

>>> x = 42
>>> print 'input x is : ' + x
Traceback (most recent call last):
  File "<interactive input>", line 1, in <module>
TypeError: cannot concatenate 'str' and 'int' objects
>>> print 'input x is : ' + `x`
input x is : 42

第一个print语句不能工作,是因为不可以将字符串和数字进行相加;而第二个可以正常工作,是因为已经通过反引号将x的值转换为字符串’42‘了。


input和raw_input

>>> name = input('your name is : ')
your name is : susan
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<string>", line 1, in <module>
NameError: name 'susan' is not defined
>>> name = input('your name is : ')
your name is : 'susan'
>>> name = raw_input('yout name is : ')
yout name is : susan

input会假设用户的输入是合法的Python表达式,因此输入字符串的时候需要带引号;而raw_input函数会把所有的输入当做原始数据(raw data),然后将其放入字符串中。除非对input有特别的需要,否则应该尽可能使用raw_input函数。


长字符串

如果需要写一个非常长的字符串,需要跨多行,那么可以使用三个引号(单引号或双引号都可以)代替普通引号。

>>> print '''This is
... a very long sentence.
... It continues here.
... And it's not over yet.
... "Hello , world !"
... Still here.'''
This is
a very long sentence.
It continues here.
And it's not over yet.
"Hello , world !"
Still here.

普通字符串也可以跨行,如果一行之中的最后一个字符是反斜线,那么换行符本身就被“转义”了,也就是被忽略了。

>>> print 'Hello\
...  world.'
Hello world.


原始字符串

在普通字符串中,反斜线有特殊的作用,它会转义,让你在字符串中加入通常情况下不能直接加入的内容,例如换行如\n。

>>> path = 'C:\nowhere'
>>> print path
C:
owhere

原始字符串对于反斜线并不会特殊对待。在字符串中输入的每个字符都会与书写的方式保持一致。

>>> print r'C:\nowhere'
C:\nowhere

不能在原始字符串结尾输入反斜线,即原始字符串的最后一个字符不能是反斜线,除非对反斜线进行转义(用于转义的反斜线也会成为字符串的一部分)。如果最后一个字符(位于结束引号前的那个)是反斜线,Python就不清楚是否应该结束字符串。

>>> print r'Hello\'
Traceback (  File "<interactive input>", line 1
    print r'Hello\'
                  ^
SyntaxError: EOL while scanning string literal
>>> print r'Hello\\'
Hello\\

可以把反斜线单独作为一个字符串来处理

>>> print r'C:\Files' '\\'
C:\Files\
>>> print r'Hello' '\\'
Hello\


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值