[python小白]菜鸟教程---
pycharm竟然是idea大家族里面的,汉化之后不知道比my、eclipse高明到哪里去了。https://blog.csdn.net/pingfangx/article/details/78826155(汉化教程))
#coding:utf-8 (不过我的一开始就很支持中文哎...
一、基本语法
(1)基本知识
print "hello world"
py3.0一般就是print("hello,word!")
-d 在解析时显示调试信息
-O 生成优化代码 ( .pyo 文件 )
-S 启动时不引入查找Python路径的位置
中文输出: Python中默认的编码格式是 ASCII 格式
解决方法为只要在文件开头加入 # -*- coding: UTF-8 -*- 或者 #coding=utf-8 就行了
注意: = 号两边不要空格。
#!/usr/bin/python
#coding=utf-8
Python 中的标识符是区分大小写的。
以下划线开头的标识符是有特殊意义的。以单下划线开头 _foo 的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用 from xxx import * 而导入;
以双下划线开头的 __foo 代表类的私有成员;以双下划线开头和结尾的 __foo__ 代表 Python 里特殊方法专用的标识,如 __init__() 代表类的构造函数。
Python 可以同一行显示多条语句,方法是用分号 ;
>>> print 'hello';print 'runoob';
hello
runoob
(2)缩进
学习 Python 与其他语言最大的区别就是,Python 的代码块不使用大括号 {} 来控制类,函数以及其他逻辑判断。python 最具特色的就是用缩进来写模块。
缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量,这个必须严格执行。
IndentationError: unindent does not match any outer indentation level错误表明,你使用的缩进方式不一致,有的是 tab 键缩进,有的是空格缩进,改为一致即可。
如果是 IndentationError: unexpected indent 错误, 则 python 编译器是在告诉你"Hi,老兄,你的文件里格式不对了,可能是tab和空格没对齐的问题",所有 python 对格式要求非常严格。
建议你在每个缩进层次使用 单个制表符 或 两个空格 或 四个空格 , 切记不能混用
(4)注释和输出
可以使用斜杠( \)将一行的语句分为多行显示,语句中包含 [], {} 或 () 括号就不需要使用多行连接符。
引号( ' )、双引号( " )、三引号( ''' 或 """ ) 来表示字符串。
python中单行注释采用 # 开头。
'''
这是多行注释,使用单引号。
'''
print 默认输出是换行的,如果要实现不换行需要在变量末尾加上逗号 ,
(5)
缩进相同的一组语句构成一个代码块,我们称之代码组。
像if、while、def和class这样的复合语句,首行以关键字开始,以冒号( : )结束
二、python变量类型
Python 中的变量赋值不需要类型声明。
每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
(用=)
a = b = c = 1
a, b, c = 1, 2, "john"都可以
Numbers(数字)
String(字符串)
List(列表)
Tuple(元组)
Dictionary(字典)
(1)字符串
如果你要实现从字符串中获取一段子字符串的话,可以使用 [头下标:尾下标] 来截取相应的字符串,其中下标是从 0 开始算起,可以是正数或负数,下标可以为空表示取到头或尾。
[头下标:尾下标] 获取的子字符串包含头下标的字符,但不包含尾下标的字符。【左闭右开】
加号(+)是字符串连接运算符,星号(*)是重复操作。如下实例:print str * 2 # 输出字符串两次
【实例】
str = 'Hello World!'
print str # 输出完整字符串
print str[0] # 【【输出字符串中的第一个字符】】
print str[2:5] # 输出字符串中第三个至第五个之间的字符串(不包含第五个。因此这里有2 3 4 一共3个
print str[2:] # 输出从第三个字符开始的字符串
print str * 2 # 输出字符串两次
print str + "TEST" # 输出连接的字符串
(2)列表
列表用 [ ] 标识,是 python 最通用的复合数据类型。
列表中值的切割也可以用到变量 [头下标:尾下标] ,就可以截取相应的列表,从左到右索引默认 0 开始。
下标可以为空表示取到头或尾。
(3)元组
元组是另一个数据类型,类似于List(列表)。
元组用"()"标识。内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表。
以下是元组无效的,因为元组是不允许更新的。而列表是允许更新的:
(4)字典
字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型。列表是有序的对象集合,字典是无序的对象集合。
两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
字典用"{ }"标识。字典由索引(key)和它对应的值value组成。
实例(Python 2.0+)
#!/usr/bin/python
# -*- coding: UTF-8 -*-
dict = {}
dict['one'] = "This is one"
dict[2] = "This is two"
tinydict = {'name': 'john','code':6734, 'dept': 'sales'}
print dict['one'] # 输出键为'one' 的值
print dict[2] # 输出键为 2 的值
print tinydict # 输出完整的字典
print tinydict.keys() # 输出所有键
print tinydict.values() # 输出所有值
输出结果为:
This is one
This is two
{'dept': 'sales', 'code': 6734, 'name': 'john'}
['dept', 'code', 'name']
['sales', 6734, 'john']
(5)类型转换
str(x)将对象 x 转换为字符串
int(x [,base])将x转换为一个整数
base -- 进制数,默认十进制
eval(str)用来计算在字符串中的有效Python表达式,并返回一个对象
tuple(s)将序列 s 转换为一个元组
list(s)将序列 s 转换为一个列表
dict(d)创建一个字典。d 必须是一个序列 (key,value)元组。
chr(x)将一个整数转换为一个字符
unichr(x)将一个整数转换为Unicode字符
ord(x)将一个字符转换为它的整数值
>>> int('12',16) # 如果是带参数base的话,12要以字符串的形式进行输入,12 为 16进制
18
>>> int('0xa',16)
10
>>> int('10',8)
8
这个貌似是, 括号里的意思是十几进制的意思,也就是12 是16进制的12所以是18
四、运算符
(1)+ - * / %
**是幂 返回x的y次幂
//取整数 向下取整
(2)Python2.x 里,整数除整数,只能得出整数。如果要得到小数部分,把其中一个数改成浮点数即可。
也就是1.0/2或者1/float(2)
(3)!=是不等的意思, 同时也是<>
(4)%=和//=以及**=都是一样的
(5)位运算
& a
|^
~
<<
>>
(6)逻辑运算符!!!!
(7)in // a in list a not in list
is (==是判断是否值相等,is 是是否引用的一个对象) is not
六 条件语句
elif 就是else if
用严格的缩进区分
0或者null为false
由于 python 并不支持 switch 语句,所以多个条件判断,只能用 elif 来实现,如果判断需要多个条件需同时判断时,可以使用 or (或),表示两个条件有一个成立时判断条件成功;使用 and (与)时,表示只有两个条件同时成立的情况下,判断条件才成功。
【记得if后面要有":" for也是】
流畅的pythoon阅读笔记 鸭子切片原理
实际应用:
使用IDLE打开,python shell运行
然后要输入! import
然后就是缩进︿( ̄︶ ̄)︿非常重要
(应该也没啥。直接在那里打开就行。。)
唔... 感觉太难用了 ,我就去下了pycharom
简直完美啊,再也没有报错过!!
第一个程序参考了菜鸟教程(本篇都是参考菜鸟教程) http://www.runoob.com/w3cnote/prints-diamonds-triangles-rectangles.html (py打印简单的三角形)
#coding:utf-8 rows=int(raw_input('请输入变量')) i=j=k=1 #等腰直角三角形: print "world begins" for i in range(0,rows): for j in range(0,rows-i): print " * ", j+=1 i+=1 print "\n" #空心正方形 print "空心正方形" for i in range (0,rows): #区间似乎是左闭右开 所以... for k in range(0,rows): if i!=0 and i!=rows -1:# 中间的行的控制 if k==0 or k==rows-1:# 边缘的控制 print " * ", else: print " ", else: print " * ", k+=1 i+=1 print "\n"
然后这里呢,要特别注意“,” 不然 就去换行了
还有for i in range (..)
i+=1 (一般是这样的格式哦)
【继续学一下 有关"循环"】
七 循环语句
1.for循环
(1)字符串
for letter in 'Python': # 第一个实例
print '当前字母 :', letter
(2)数组
fruits = ['banana', 'apple', 'mango']
for fruit in fruits: # 第二个实例
print '当前水果 :', fruit
或者索引:
for index in range(len(fruits)):
print '当前水果 :', fruits[index]
函数 len() 返回列表的长度,即元素的个数。 range返回一个序列的数。
2.循环使用else语句
在 python 中,for … else 表示这样的意思,for 中的语句和普通的没有区别,else 中的语句会在循环正常执行完(即 for 不是通过 break 跳出而中断的)的情况下执行,while … else 也是一样。
【也就是,如果else没和if对齐而是和for对奇了,就相当于是一个bool设置xxx的例子。】
3.while用法大致相同
break 来跳过循环,continue 用于跳过该次循环,break 则是用于退出循环
【可以使用 CTRL+C 来中断(无限)循环】
while … else 在循环条件为 false 时执行 else 语句块:(else和while对其的时候)
如果你的 while 循环体中只有一条语句,你可以将该语句与while写在同一行中。
4.补充
& (严格,与,都满足) | (不严格,或,有一个就诊) ^(异或) <<(左边弯加,右边弯假)
【只能用elif哦!。。】
八 python数字
Python pass是空语句,是为了保持程序结构的完整性。
占据一个位置,因为如果定义一个空函数程序会报错,当你没有想好函数的内容是可以用 pass 填充,使程序可以正常运行。
【就像分号 ;一样】
chr(x ) 将一个整数转换为一个字符
hex(x ) 将一个整数转换为一个十六进制字符串
(还有类似许多,http://www.runoob.com/python/python-numbers.html 基本是想变成什么就叫什么名字吧(当然了) 以及加了.0才认得你是浮点数
import math / cmath(包含复数 i... )
abs(x) ceil(x) exp(x) #e的x次幂 用法math.exp(1)
log(x) math.log(100,10) 2.0
log10(x) math.log10(100) 2.0
pow(x,y) x的y次方啊!!!!
round(x,[,n]) 私车五日,后面是小数点位数
这些都有
随机数函数 (很重要,但是还不知道用法)
常量:pi e