新建一个hello.py输入以下代码,控制台使用Python命令执行hello.py,第一个py程序搞定
print("hello,Python")
单行注释#这是被注释的代码多行注释1.每一行用#2.三引号包围(''' 代码段''')(""" 代码段 """)
学习一门语言如何学?基本套路就是从环境搭建,ide选择,到第一个输出语句到接下来的数据类型开始认识!
Python也毫不例外这些套路.我们来认识下Python都哪些数据类型!
Python3 的六个标准数据类型中:
n=123 #一个整数型的数字,在py3.x版本以整数只有intf=123.0 #一个浮点型只有floatprint(type(n)) type可以返回变量类型
注意:布尔属于number的一种!
可以转为Flase的情况
0====>Flase[]====>Flase()====>Flasenone===>Flase
number型的运算类型
type(1) #inttype(1+1) #inttype(1+1.0) #floattype(2/2) #float ,注意此情况是floattype(2//2) #number,双//是number类型
a=36jb=4+5jtype(b) #返回complex
# 进制# 二进制:0b10# 八进制:0o1357# 十六进制:0xAF36#进制转换#转十进制int()#转二进制 0b开头bin()#转16进制 0x开头hex()#转八进制 0o开头oct()
单引
name='哈哈'
双引
name="李雷"
三引号(用于多行代码包围,简单理解类似于js的``)
name='''你好你丫哈哈哈'''
#转义字符串#/n换行#/r回车# \t 缩进
#原生字符串#需要保留转义的用到转义字符串如保留D:\Python\basis\day01print(r"D:\Python\basis\day01");
字符串拼接
#拼接可用 + 或者 , 并列还有其他方式#+方式print('hello'+'world')#helloworldprint('hello'*3)#hellohellohello#,方式 会显示空格print('hello','world')#hello world#并列连接print('hello''world') #结果:helloworld
指定字符串计算
str='helloworld'#str[0]获取第一位的字符#str[-n]从最后开始数#获取hello,第一个开始位置,末尾为结束的下一位print(str[0:6])#截取除最后两位print(str[0:-2])#截取hello2种方式:print(str[0:5])print(str[0:-5])newStr="hello C# JAVA PHP GO PYTHON c++ c ruby"#保留hello除外print(newStr[6:])#保留最后四位print(newStr[-4:])
何为列表?py三大可变数据类型的一种.类似于JavaScript中的数组形式也是一样.
我们来看下如何定义一个数组.呸!列表(List)
# 定义一个列表arr = [1, 5, 8, 'hello', 'world', False, True]# 检测类型print(type(arr))# 列表嵌套arr1 = [[1, 2, 3], ['hello', 'world'], ['this', 'is', 'Python']]print(type(arr1))
列表的相关操作和JavaScript的大体类似,又有着自己独立简洁的方式!
# 列表操作fruit = ["苹果", "梨子", "香蕉", "桃子"]# 选取指定某个位置的元素print(fruit[3])#选取指定位置开始到结束的print(fruit[0:3])#从后面截取,返回是单个数组print(fruit[-1:])#列表合并print(fruit+["火龙果","橙子","葡萄"])#列表相乘,返回['苹果', '梨子', '香蕉', '桃子', '苹果', '梨子', '香蕉', '桃子']print(fruit*2)
元组使用()定义,是一种不可变数据类型!我们看下简单食用方法!
#定义一个元组使用()tup=(1,2,3,4,5);
元组的相关操作
#使用指定的元组元素print(tup[0:2])print(tup[-3:])#元组数据相乘(1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5)print(tup*3)#元组合并print(tup+(5,6))#元组的使用方法大多数于列表相同,但是元组数据不可修改,不能元组复制#单个元组的话,里面本身是什么类型就返回自身类型,不会返回元组print(type((1))) #intprint(type(('hello'))) #string
#序列#包含:str(字符串),list(列表),tuple(元组)#1.可以使用+*操作#2.切片 下标索引等print([1,2,3][0])#3.in和not in操作print(3 in [1,3,5,7,9]) #返回Trueprint(3 not in [1,3,5,7,11]) #返回False#4.可以进行求出序列的最大值,最小值print(max(1,2,3))print(max(1,2,3))#非数字转换为ascll码进行比较print(max('你好,Python'))#获取指定字符的ascll码值print(ord('中'))
定义一个集合(和上述的序列不同,集合是无序的)
#定义一个sets={1,2,3,4,3,3,5,4,5}print(s)print(type(s)) # 检测下集合的类型
判断是否包含可以使用序列的in和 not in方法
#判断是否在3内s={1,2,3,4,3,3,5,4,5}print(3 in s) # True
集合的相关操作
#去除集合中的{3,4,5}使用-print(s-{3,4,5}) #返回集合{1,2}#找到2集合(或者多个)的重复元素print(s &{3,4}) # 返回重复的集合(交集)#找到多个集合的合并(并集) 用 |print(s | {8,9,10,5}) #返回 {1, 2, 3, 4, 5, 8, 9, 10}#判断集合的类型print(type({1,2,3})) #返回setprint(type({})) #空集合不返回set返回dict
定义一个空集合
print(type(set()))
先来看下字典定义格式 {k:v,.....}
定义一个字典类型
d = {'name': '哈哈', 'age': '18', 'time': '2019-9-13'}print(type(d))
具体使用方式
# key 可以必须是不可变类型 int,str,tupleprint(type({(1, 2): '今天真好', 'test': '测试', 1: 'python'}))# key不能重复,但是1(int)和'1'(str)可以同时print({'a': 123, 'a': 456, 'b': '000'}) # {'a': 456, 'b': '000'}print({'1': 'hello', 1: 'world'}) # {'1': 'hello', 1: 'world'}# print({[1, 2]: 3}) # 报错,[1,2]是可变的# 字典访问 通过dict['key']访问print(d['name'])# 表示一个空的dictprint(type({}))# 一个空的集合setprint(type(set()))
值类型(int,str,tuple)不可改变,引用类型(list set dict)可以改变
算术运算符
• +• -• *• /• %• **• //
赋值运算符
++ -- *= /= %= **= //=
比较运算符
><>=<===!=
逻辑运算符
andornot
身份运算符
innot in
位运算符(转为二进制计算,初次接触java时候也接触过,等同的方式)
& 按位于| 按位或^ 按位异或~ 按位取反>> 右移动<< 左移动
判断变量类型
isinstance(str,(type1,type2...))
条件控制(if....else)
注意:py是通过缩进进行识别代码的,不需要其他语言的{}进行执行函数体,看一下简单的一个if语句p=Trueif p: print('正确')else: print('错误')
模拟用户密码校验(check.py)
# 检测用户密码时候正确# 定义默认密码user_name = 'root'user_pwd = '123456'# 用户输入函数 inputprint('请输入您的用户名')name = input()print('请输入您的密码')password = input()if (name == user_name) & (password == user_pwd): print('亲爱的管理员,欢迎登陆')else: print('抱歉,账号或密码错误!')
循环
while循环
count = 1while count <= 10: print("你好,Python!", count) count += 1else: print("循环结束")
for in循环
简单的for in遍历
fruit = ['apple', 'orange', 'peach', '西瓜', '火龙果']for x in fruit: print(x)print("======================优雅的分隔符=======================")
常规for循环
其他语言for(i=0;i<10;i++){ 代码段}py如何实现指定次数的循环呢!需要结合 range(star,end,步长)for x in range(0, 10): print("你好,Python", x)#递减的for循环for n in range(10, 0,-1): print("n:", n)
多重数据遍历
arr1 = [['apple', 'orange', 'peach', '西瓜', '火龙果'], (1, 2, 3)]for m in arr1: for n in m: print(n)
包:一个文件夹,一个包下面包含多个模块
模块:一个文件(*.py),一个模块包含多个类
类:一个类包含一个或者多个变量,函数
包引入
import package_namepackage_name.变量/方法调用
包可以和模块嵌套,每个包里面可以多个模块
pack1=>{ pack2=>{ m1 m2 .... } m1 m2 m3 ....}
调用两个模块的m1
第一层的m1import m1print(m1.a)调用第二层的m1import pack2.m1对于包(package)名过长可以这样导入import package_name as new_name下次使用new_name调用既可
另一种引入方式
导入单个变量from packa_name import a导入所有的变量from packa_name import a,b,cfrom packa_name import *
__init.py
作用
init.py为包名导入共用的代码,提高可复用性注意:包和模块不能重复导入
定义函数
"""定义一个函数def funcname(args_list): 代码段可以没有参数,可以没有返回值,可以使用return"""def func(): print("这是py的一个函数")func()
函数的定义和调用
"""定义一个两数相加函数"""def add(m, n): return m + nprint(add(5, 8))"""打印输入的参数"""def arg(name, age): print(name + '今年' + age)arg('李雷', '28')
函数参数的对应
def add(x,y): return x+y# 参数一一对应 add(3,5) # 也可以进行分别赋值 add(y=3,x=5)
多个赋值的几种方式
x,y,z=10,20,30x=y=z=10a=1,3,5type(a) # 返回 tuple(元组)
默认参数
# 默认参数def student_info(name, sex='男', age='18', school='衡水中学'): print("我是" + name) print("我是" + sex + "生") print("我今年" + str(age) + "岁") print("我在" + school + "上学")# 传递就用新参数,不传递默认参数的值代替student_info("李雷")print("=======================================")student_info("韩梅梅", "女")print("=======================================")student_info("王小明", "男", 16)print("=======================================")#注意必须参数传在默认参数之前
默认参数其一的调用方式
# 默认参数指定其一
student_info("王二蛋", age=16)
print("=======================================")
至此大概已经了解了py的基本语法,接下来开始py编码之路吧!