Python入门

注释

单行注释使用符号(#)

#print(hello world)

多行注释可以使用符号(''')

'''
print(hello world)
'''

代码换行

如果代码是在过长,需要换行

a = 3+\
5

基本数据类型

counter = 1                 # 整型变量
miles   = 1.0               # 浮点型变量
name    = "hello world"     # 字符串
answer = True               #布尔型 注意True 和False 必须开头大写 写true是不行的

变量

Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。

可以使用type()查询变量类型

a = 3
print(type(a))
输出:<class 'int'>

可以多元赋值

x,y = 1,2

id与==

id可以理解成C语言中的内存地址

==是值比较

a = 3
b = 3
print(id(a)) #21132060
print(id(b)) #21132060
print(a==b) #True
######################################
a = 2.5
b = 2.5
print(id(a)) #19622112
print(id(b)) #24311676
print(a==b) #True

从上面例子可以看出,首先==是值比较,但是id,在一些比较短小的数据时,python编译器会做优化,指向同一个地址,就造成第一个例子,a,b的内存地址一致,但是第二个例子就说明了id一致的情况一般就出现在int和str类型比较短的时候。

print()函数

1.print可以直接输出字符串、数值类型、变量(无论什么类型的变量)

print(1)
s = 'Hello'  
print(s)

2.格式化输出

s = 'Hello'  
x = len(s)  
print("The length of %s is %d" % (s,x))  
########################################
pi = 3.141592653  
print('%10.3f' % pi) #字段宽10,精度3  
     3.142  
print("pi = %.*f" % (3,pi)) #用*从后面的元组中读取字段宽度或精度  
pi = 3.142  
print('%010.3f' % pi) #用0填充空白  
000003.142  
print('%-10.3f' % pi) #左对齐  
3.142       
print('%+f' % pi) #显示正负号  
+3.141593 
################################ 
如何让 print 不换行
for x in range(0,10):  
    print (x,end = '')          
0123456789

3.拼接字符串

"Hello""World"  
'HelloWorld'  
x = "Hello"  
y = "world"  
x+y  
'Helloworld'
#####这样写会报错
xy  
Traceback (most recent call last):  
  File "<pyshell#10>", line 1, in <module>  
    xy  
NameError: name 'xy' is not defined

数字和运算

1.运算符描述示例运算结果

运算符     描述     示例     结果
+          加法     5 + 8      13
-          减法     90 – 10    80
*          乘法     4 * 7      28
/      浮点数除法    7 / 2      3.5
//     整数除法      7 // 2     3
%      模(求余)    7 % 3       1
**         幂       3 ** 4      81
^        异或        1 ^ 2    3

2.进制类型

在Python 中,除十进制外你还可以使用其他三种进制的数字:

‒ 0b 或0B 代表二进制

‒ 0o 或0O 代表八进制

‒ 0x 或0X 代表十六进制

3.数学函数

函数太多,我们只举例常用的。

math.pi

math.e

abs() 与 fabs() 用于获得绝对值 fabs()精度更高(详情Stack Overflow)

#abs与fabs的适用类型及输出值类型
In [7]: type(abs(-2))
Out[7]: int

In [8]: type(abs(-2.0))
Out[8]: float

In [9]: type(abs(3+4j))
Out[9]: float

In [10]: type(math.fabs(-2))
Out[10]: float

In [11]: type(math.fabs(-2.0))
Out[11]: float

In [12]: type(math.fabs(3+4j))
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
/home/alexei/<ipython-input-12-8368761369da> in <module>()
----> 1 type(math.fabs(3+4j))

TypeError: can't convert complex to float
#######################################
#abs与fabs效率差别
In [1]: %timeit abs(5)
10000000 loops, best of 3: 86.5 ns per loop

In [2]: from math import fabs

In [3]: %timeit fabs(5)
10000000 loops, best of 3: 115 ns per loop

In [4]: %timeit abs(-5)
10000000 loops, best of 3: 88.3 ns per loop

In [5]: %timeit fabs(-5)
10000000 loops, best of 3: 114 ns per loop

In [6]: %timeit abs(5.0)
10000000 loops, best of 3: 92.5 ns per loop

In [7]: %timeit fabs(5.0)
10000000 loops, best of 3: 93.2 ns per loop

In [8]: %timeit abs(-5.0)
10000000 loops, best of 3: 91.8 ns per loop

In [9]: %timeit fabs(-5.0)
10000000 loops, best of 3: 91 ns per loop

向下取整的整数(floor())和向上取整的整数(ceil()):

floor 返回不大于的最大整数

found 则是4舍5入的计算,入的时候是到大于它的整数

ceil 则是不小于他的最小整数

math.floor math.round math.ceil
1.4 1 1 2
1.5 1 2 2
1.6 1 2 2
-1.4 -2 -1 -1
-1.5 -2 -1 -1
-1.6 -2 -1 -1
>>> math.floor(98.6)
98
>>> math.floor(-271.1)
-272
>>> math.ceil(98.6)
99
>>> math.ceil(-271.1)
-271
>>>math.round(1.4)
1
>>>math.round(-1.4)
-1

factorial() 计算阶乘(在数学中以n! 表示):

>>> math.factorial(1)
1
>>> math.factorial(3)
6
>>> math.factorial(5)
120

使用log() 计算自然对数(此处传入两个参数,第一个是对数,也就是log上方的数,第二个为底数,就是log下方的数,底数默认是e):

>>> math.log(1.0)
0.0
>>> math.log(math.e)
1.0
>>> math.log(1,2)
0.0

pow() 做的工作与上面正好相反,它用于计算一个数的指数(此函数可以用来开多次范根):

>>> math.pow(2, 3)
8.0
>>> math.pow(4,1.0/3)

指数运算符** 也可以进行同样的计算,但是结果略不同(同理可以用于开多次方根)

>>> 2**3
8
>>> 2.0**3
8.0

使用sqrt() 得到平方根:

>>> math.sqrt(100.0)
10.0

常见的三角函数:

sin()、cos()、tan()、asin()、acos()、atan()、atan2()

math 库还包含hypot()2 函数帮你计算给定两直角边对应的斜边长度:

>>> x = 3.0
>>> y = 4.0
>>> math.hypot(x, y)
5.0

角坐标转换:

>>> math.radians(180.0)
3.141592653589793
>>> math.degrees(math.pi)
180.0
>>> math.sin(math.radians(30))
0.49999999999999994
>>> math.cos(math.radians(60))
0.5000000000000001

复数运算

>>> 1j * 1j
(-1+0j)
>>> (7 + 1j) * 1j
(-1+7j)

for的生成式

i = [i+3 for i in list if i%2]
print(i)

字符串

1.创建 单引号双引号都可以

'Hello World!'
"Python Runoob"

2.使用\转义

转义符\t(tab 制表符)常用于对齐文本,之后会经常见到:

>>> print('\tabc')
abc
>>> print('a\tbc')
a bc
>>> print('ab\tc')
ab c
>>> print('abc\t’)
abc

还有 :\n,\’,\……

3.拼接、复制、提取

拼接:

>>> a = 'mo'
>>> b=a
>>> c='da'
>>> a+b+c
'momoda'
>>> print(a+b+c)
momoda
>>> print(a,b,c)
mo mo da
>>>

复制

>>> a='mo'*2 +'\n'
>>> b='da'*5 + '\n'
>>> print(a+b)
momo
dadadadada

提取

>>> letters =
'abcdefghijklmnopqr
stuvwxyz'
>>> letters[0]
'a'
>>> letters[1]
'b’
>>> letters[-1]
'z'
>>> letters[-2]
'y'

4.字符串分片

分片操作(slice)可以从一个字符串中抽取子字符串(字符串的一部分)

[:] 提取从开头到结尾的整个字符串

[start:] 从start 提取到结尾

[:end] 从开头提取到end - 1

[start:end] 从start 提取到end - 1

[start:end:step] 从start 提取到end - 1,每step 个字符提取一个

5.字符串常用操作

len(letters) : 获取字符串长度

letters.split(‘,’): 字符串分割

‘, ’.join(letters): 字符串合并

须注意:如果是join中直接写元素,会导致第一种输出结果。要想实现拼接,必须在join括号中,写('xxx','xxx') 这样才会有第二种输出效果。也就是说要在join的括号中套用tuple

a = 'abcdefg'
print((',').join(a))
>>>a,b,c,d,e,f,g
print(('@').join(('zhangsan','163.com')))
zhangsan@163.com

letters.strip(‘.‘): 删除字符串首尾字符

letters.capitalize(): 首字母大写

letters.upper()/lower(): 让所有字母变大写/小写

letters.swapcase(): 大小写转换

letters.replace('a ', 'a famous ', 100) 最后的数字是替换不超过 100次

str.startswith(prefix)

str.endswith(suffix) #是否以

str.isalnum() # 是否全是字母和数字,并至少有一个字符。

str.isalpha() # 是否全是字母,并至少有一个字符。

str.isdigit() # 是否全是数字,并至少有一个字符。

str.isspace() # 是否全是空白字符,并至少有一个字符。

str.islower() # 字母是否全是小写

str.isupper() # 字母是否全是大写

str.istitle() # 首字母是否大写

原始字符串

在字符串最外面加r,这里r的含义是raw,就是输出不含转义的最原始的字符串

print("a\rb\rc")
print(r"a\rb\rc")
>>>c
>>>a\rb\rc
#######################
open("E:\2017-8-23\笔记.docx","r+")
>>>ValueError: embedded null character
open(r"E:\2017-8-23\笔记.docx","r+")
>>>#不报错
print("%s是个好学生,年龄%d"%("张三", 36))   #张三是个好学生,年龄36
print("{},{}".format("张三", 36)) #张三,36
print("{1},{0}".format("张三", 36))   #36,张三

练习

本章介绍了Python 最基本的元素:数字、字符串以及变量。我们试着在交互式解释器里完成一些相关的练习。

# (1) 一个小时有多少秒?这里,请把交互式解释器当作计算器使用,将每分钟的秒数(60)
print('1',60 * 60)
# (2) 将上一个练习得到的结果(每小时的秒数)赋值给名seconds_per_hour 的变量。
seconds_per_hour = 60 * 60
print('2',seconds_per_hour)
# (3) 一天有多少秒?用你的seconds_per_hour 变量进行计算。
print('3',24 * seconds_per_hour)
# (4) 再次计算每天的秒数,但这一次将结果存储在名为seconds_per_day 的变量中。
seconds_per_day = 24 * seconds_per_hour
print('4',seconds_per_day )
# (5) 用seconds_per_day 除以seconds_per_hour,使用浮点除法(/)。
print('5',seconds_per_day / seconds_per_hour)
# (6) 用seconds_per_day 除以seconds_per_hour,使用整数除法(//)。
# 除了末尾的.0,本练习所得结果是否与前一个练习用浮点数除法得到的结果一致?
print('6',seconds_per_day // seconds_per_hour)
#############################################
1 3600
2 3600
3 86400
4 86400
5 24.0
6 24
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343

推荐阅读更多精彩内容