1:第一个Python程序
Python程序有多种编写方式:
1.1. 进入cmd控制台,输入python进入编辑模式. 这时候我们可以直接编写python程序
win + R 输入cmd进入命令行,输入python
1.2. 也可以在.py文件中编写python代码. 通过python命令来执行python代码,在d盘新建一个test.py文件,然后记事本打开,输入如下内容:然后保存
print("hello Python")
print(11 + 20)
注意: python2中的中文编码会有问题. Python2使用的是ASCII码编码. 处理不了中文. 我们需要替换成utf-8编码.:需要在test.py文件在开头加入如下语句:
# -*- encoding:utf-8 -*-
1.3 也可以在集成开发环境中运行,比如Sublime Text 3
2:变量及赋值
2.1:变量:
变量:在Python中变量就是对象的引用,相当于指向对象的指针,变量没有类型,有类型的是对象。
Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型。
2.2:赋值
将一个值赋给变量的操作被称为赋值。如:
a = 101
b = 102
多重赋值与多元赋值:
多重赋值:可以同时给多个变量赋予相同内容的操作。如:
a = b = c = 200
多元赋值:可同时给多个变量赋予不同内容的操作。如:
a,b,c = 1,2,3
Python在赋值的时候会执行3个不同的步骤来完成赋值操作:
如:a= 101
1:创建一个对象来代表值110。
2:创建一个变量a,如果它没有创建的话。
3:将变量与新的对象110相连接。
如下图:
2.3:变量定义的规则:
a:变量名由数字,字母,下划线组成
b:变量名不能以数字开头
c:变量名区分大小写
d:变量名不能是Python关键字
Python有哪些关键字??
>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
>>>
变量名命名建议:
a:名字要有意义
b:不要太长
c:推荐大家使用驼峰体或者下划线命名
驼峰体: 除首字母外的其他每个单词首字母大写
下划线: 每个单词之间用下划线分开
3:常量
常量即指不变的量,在python中不存在绝对的常量. 约定俗成, 所有字⺟⼤写就是常量
例如: PI = 3.141592653
4:注释
Python中单行注释以 # 开头,实例如下:
# 第一个注释
print ("Hello, Python!") # 第二个注释
执行以上代码,输出结果为:
Hello, Python!
多行注释可以用多个 # 号,还有 ''' 和 """:
# 第一个注释
# 第二个注释
'''
第三注释
第四注释
'''
"""
第五注释
第六注释
"""
print ("Hello, Python!")
执行以上代码,输出结果为:
Hello, Python!
5:行与缩进
python最具特色的就是使用缩进来表示代码块,不需要使用大括号 {} 。
Python的缩进有以下几个原则:
顶级代码必须顶行写,即如果一行代码本身不依赖于任何条件,那它必须不能进行任何缩进;
同一级别的代码,缩进必须一致;
缩进的字符要一致,要么是按tab键,要么是按几个空格键,不然会出错;
缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数,并且两个相邻代码块之间缩进空格数不同。实例如下:
if True:
print ("True") # 此处需要缩进
else:
print ("False") # 此处需要缩进
以上是运行错误的
if True:
print ("True") # 相当于 上一级有缩进,但不要求所有缩进都一致
else:
print ("False")
以上是运行正确的
if True:
print ("True")
else:
print ("False1")
print ("False2") # 此处与前后的print语句属于同一级,故不能缩进
print ("False3")
以上是运行错误的
建议采用如下缩进,相邻代码块之间使用4个空格(或者tab)来缩进
if True:
print ("True")
else:
print ("False1")
print ("False2")
print ("False3")
6:多行语句
Python 通常是一行写完一条语句,但如果语句很长,我们可以使用反斜杠(\)来实现多行语句,例如:
total = line_one + \
line_two + \
line_three
#不需要缩进
在 [], {}, 或 () 中的多行语句,不需要使用反斜杠(\),例如:
total = ['item_one', 'item_two', 'item_three',
'item_four', 'item_five']
7:Python基本数据类型
什么是数据类型?
我们人类可以很容易的分清数字与字符的区别,但是计算机并不能呀,计算机虽然很强大,但从某种角度上看又很傻,除非你明确的告诉它,1是数字,“汉”是文字,否则它是分不清1和‘汉’的区别的,因此,在每个编程语言里都会有一个叫数据类型的东东,其实就是对常用的各种数据类型进行了明确的划分,你想让计算机进行数值运算,你就传数字给它,你想让他处理文字,就传字符串类型给他。Python中常用的数据类型有多种,今天我们暂只讲3种, 数字、字符串、布尔类型
7.1、整数类型(int):
int(整型)
在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647
在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807
long(长整型)
跟C语言不同,Python的长整数没有指定位宽,即:Python没有限制长整数数值的大小,但实际上由于机器内存有限,我们使用的长整数数值不可能无限大。
注意,自从Python2.2起,如果整数发生溢出,Python会自动将整数数据转换为长整数,所以如今在长整数数据后面不加字母L也不会导致严重后果了。
注意:在Python3里不再有long类型了,全都是int
Python2.7
Python3.6
7.2、字符串类型(str):
在Python中,凡是⽤引号引起来的,全是字符串;
字符串可以⽤单引号(''),双引号(""),或者三引号('''或者""")引起来,没有什么区别,只是⼀些特殊的格式需要不同的引号:
只有下面这种情况 你需要考虑单双的配合或者使用转义符\:
s = 'I\'m Chinese' # 使用转义字符
print(s)
s = "I'm Chinese"
print(s)
多引号什么作用呢?作用就是多行字符串必须用多引号
s = """
日照香炉生紫烟,
遥看瀑布挂前川。
飞流直下三千尺,
疑是银河落九天。
"""
print(s)
# 字符串的拼接 (+)
s1 = 'hello '
s2 = 'world'
print(s1 + s2)
#注意,字符串的拼接只能是双方都是字符串,不能跟数字或其它类型拼接
s1 = 'hello'
s2 = 1234
print(s1 + s2) #TypeError: must be str, not int
print(s1 + str(s2)) # 必须把数字转换为字符串,使用 str函数转换
# 相乘 str*int 重复字符串
name = '中国 '
print(name * 5)
7.3、布尔值(bool):
布尔值(bool), 真或者假, True和False
8:用户交互及输出
8. 1:input
使⽤input()函数,可以让我们和计算机互动起来 语法:
内容 = input(提⽰示信息);
这⾥里里可以直接获取到⽤用户输入的内容,input输入的内容为字符串,如果输入的为数字,需要使用int函数进行转换;
s = input("请输入:")
print(s)
print(type(s)) # <class 'str'>
8.2:输出 print
a=100
s='hello Python'
b=200
print(a,s) # 输出 100 hello Python , 分隔符默认为空格
# 修改分隔符 使用sep='分隔符'
print(a,s,sep='@@') # 输出 100@@hello Python
# 修改结束符,默认为'\n',下一个print的输出会在新的一行
print(a,end='$') # 下一个print的输出不会换行
print(s) # 下一个print的输出会在新的一行
print(b)
print('a=%s,s=%s,b=%s' % ( a ,s, b ))
9:if语句:
if 条件:
代码块
#当条件为真时,执行代码块
if 条件:
代码块1
else:
代码块2
#当条件为真时,执行代码块1,否则执行代码块2
# 多分支
if 条件1:
代码块1
elif 条件2:
代码块2
elif 条件3:
代码块3
......
else:
代码块
嵌套: if..else可以无限的嵌套, 写的时候尽量控制在3-5以内
10:while循环:
while 条件:
代码块(也叫循环体)
break #停止当前本层循环
continue #终止当前本次循环。 继续执行下一次循环
else:# 当条件为假的时候会执行else,break退出时不会执行else
代码块
print('-1-------------')
count = 0
while count < 10:
print(count)
count += 1
print('-2--has else----------')
count = 0
while count < 10:
print(count)
count += 1
else:# # 如有break 跳出,就不会执行到此处
print(count)
print('-3--continue----------')
count = 0
while count < 10:
count += 1
if count == 5:
continue
print(count)
print('-4--break----------')
count = 0
while count < 10:
print(count)
if count == 5:
break
count += 1
else: # 如有break 跳出,就不会执行到此处
print(count)
11:for循环:
用于遍历有序序列或可迭代对象
for target in object:
statements
else:
statements
s = 'Python'
for item in s:
print(item)
for i in range(1,10):
print(i)
12:python中的帮助工具:
当你对某个模块,或者对象不怎么熟悉的时候,不知道它有哪些方法的时候,你可以使用dir函数来查看,同时可以使用help函数来查看方法或属性的说明;
print(dir(str)) # 查看字符串有哪些方法及属性
print(dir(str.count)) # 查看str.count函数 有哪些方法及属性
print(help(str.count)) # 查看str.count函数 的定义,说明
# 也可以查看变量
s= 'Python'
print(dir(s))
print(help(s.count))
结果:
['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']
['__call__', '__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__get__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__name__', '__ne__', '__new__', '__objclass__', '__qualname__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__text_signature__']
Help on method_descriptor:
count(...)
S.count(sub[, start[, end]]) -> int
Return the number of non-overlapping occurrences of substring sub in
string S[start:end]. Optional arguments start and end are
查看Python中的内置函数:
# 查看字符串中的方法
print([item for item in dir(str) if not item.startswith('__') ])
# Python中所有的内置函数都在 __builtins__ 中,执行下面语句即可查看,然后使用help查看函数的详情
print([item for item in dir(__builtins__) if not item.startswith('__') and item[0].islower() ])