(1)Py 版本:
2.x = 默认编码=ASSIC=不支持中文
3.X=默认编码=utf-8=默认支持中文,同时3.X不兼容2.X
Py2.X中使用中文:
执行程序前加:
1、#!-*- coding:utf-8 -*- ;
2、coding:utf-8
(2)交互器模式:
开始----->cmd---->cd c:\---->dir
cd:change directory
dir:查看当前目录文件列表
cd..返回上一层目录
cd../..返回上上一层目录
cd../../..返回上上上一层目录
环境变量----路径
D:\>"d:\Program Files\Python35\python.exe" c:\hello.txt
(3)执行py程序的方式
1、交互器;缺点:程序不能永久保存,主要用于简单语法测试
2、文件执行
(4)文件的扩展名(后缀名),用于区分文件类型
.txt 记事本文本文件
.doc word文件
.xls excel文件
.ppt PPT文件
.exe 可执行文件
.jpg .png .jpeg 图片
.gif 动态图片
.pdf PDF文件
.mp4 .avi 视频
.py python文件
.java java 文件
.c .h c源码
.php php文件
.js javascript
(5)变量与常量
1、变量(Variables):是为了存储程序运算过程中的一些中间结果,方便日后调用
常量:不变的量,字母大写 PIE=3.1415926...
2、变量的命名规则:
①要具有描述性
②变量名只能由“_”,“数字”,“字母”组成,不可以是空格或特殊字符(#?,。!%¥)
③不能以中文为变量名
④不能以数字开头(4name=不可以,name4=可以)
⑤保留字符是不能被使用
⑥驼峰式、下划线分割单词(student_number,studentNumber)
⑦变量名区分大小写(name != Name)
3、拆除变量关系:
①del+()
②给变量重新赋值
(6)注释
单行注释用#
多行注释用三个单引号或三个双引号,'''被注释的内容''';'字符串'、''字符串''在py中都可以打印,意义是相同的;
'''字符串'''表示打印多行
(7)数据类型
input(获取用户输入):接受的所有数据都是字符串,即便输入的是数字,也依然会被当成字符串处理;
int(integer):整数,把字符串转成整数,用int(''字符串'');整数分为整型和长整型,在py3中,已经不区分整型与长整型,统一都叫整型。
str(string):字符串,把数据转成字符串,用str(''数字''),单引号、双引号在py中没有区别
字符串的内置方法 (jion)
所有的:
st = 'hello world'
print(st.count('l')) #3, 统计元素个数
print(st.capitalize()) #Hello world , 首字母大写
print(st.center(20,'-')) #----hello world-----, 居中
print(st.endswith('ld')) #True, 判断是否以某个内容结尾
print(st.startswith('he')) #True, 判断是否以某个内容开头
st = 'he\tllo world'
print(st.expandtabs(tabsize=5)) # he llo world
print(st.find('w')) #6, 查找到第一个元素,并将索引值返回 ;'字符串中没有',返回值为-1
st = 'hello world {number} and {year}'
print(st.format(number = 1998,year = 1999)) #赋值的方式:格式化输出的另一种方式
print(st.format_map({'number':1998,'year':1999})) #字典的方式
print(st.index('l')) #与find差不多,查找字符串的索引值,并将其返回
print('asd'.isalnum()) #判断字符串,字母、数字、汉字为True
print('12345678'.isdecimal()) #判断十进制数字为True
print('12345678'.isdigit()) #判断是不是一个数字,必须是整型
print('12345678'.isnumeric()) #判断是不是一个数字,必须是整型
print('asd'.isidentifier()) #判断字符串是否为非法字符;(复习变量的命名规则)
print('asd'.islower()) #判断字符串字母是否为小写,必须全部是小写,True
print('ASD'.isupper()) #判断字符串字母是否为大写,必须全部是大写,True
print(' '.isspace()) #判断字符串字是不是一个空格,不能有其他的数字或字母
print('As D'.istitle()) #标题的样式;判断字符串中每一个单词的首字母是否大写
#字母大小写
print('My Title'.lower()) #my title;所有的大写变小写
print('my Title'.upper()) #MY TITLE;所有的小写变大写
print('My Title'.swapcase()) #mY tITLE;大小写反转
print('My Title'.ljust(20,'*')) #My Title************;字符在左边
print('My Title'.rjust(20,'*')) #************My Title‘字符在右边
print(' My Title\n '.strip()) #My Title ;空格与换行符都会被去掉
print(' My Title\n '.lstrip())#去掉左边的空格或换行符
print(' My Title\n '.rstrip())#去掉右边的空格或换行符
#替换
print('My Title'.replace('Title','lesson'))#My lesson,替换整体单词
print('My Title'.replace('tle','lesson')) #My Tilesson
print('My Title Title'.replace('tle','lesson')) #My Tilesson Tilesson
print('My title title'.rfind('y')) #从左到右算索引值
print('My title title'.split(' ')) #['My', 'title', 'title'];通过空格分割,存到列表里
print('My title title'.split('i')) #['My t', 'tle t', 'tle'] 以什么为分割线
print('My title title'.title()) #My Title Title
摘一些重要的:
print(st.count('l')) #3, 统计元素个数
print(st.center(20,'-')) #----hello world-----, 居中
print(st.startswith('he')) #True, 判断是否以某个内容开头
print(st.find('w')) #6, 查找到第一个元素,并将索引值返回 ;'字符串中没有',返回值为-1
print(st.format(number = 1998,year = 1999)) #赋值的方式:格式化输出的另一种方式
print('My Title'.lower()) #my title;所有的大写变小写
print('my Title'.upper()) #MY TITLE;所有的小写变大写
print(' My Title\n '.strip()) #My Title ;空格与换行符都会被去掉
print(' My Title\n '.lstrip())#去掉左边的空格或换行符
print(' My Title\n '.rstrip())#去掉右边的空格或换行符
print('My Title Title'.replace('tle','lesson')) #My Tilesson Tilesson
print('My title title'.split(' ')) #['My', 'title', 'title'];通过空格分割,存到列表里
print('My title title'.split('i')) #['My t', 'tle t', 'tle'] 以什么为分割线
print('My title title'.split('i',1)) #['My t', 'tle title'] 以第一个i为分割线
(作业)三级菜单
print(type(变量))查看变量类型
(8)列表:
判断一个列表:type(a)is list
查
查一个元素在不在列表里
增
extend:可以在列表的末尾一次性追加另一个序列中的多个值。
改
删 (pop( )不指定,默认删除最后一个元素)
排序
reverse: 调换方向进行排序
sort:用于在原位置对列表进行排序
其他操作:
count:统计某个元素在列表中出现的次数。
Index:元素在列表中的位置,有相同的元素则取第一个;拿哪个元素就放哪个元素
如果列表里有相同元素,想要取第二个,则用切片来做(不作为重点)
元组(tuple)
元组被称为只读列表,即数据可以被查询,但不能被修改,所以,列表的切片操作同样适用于元组。对于一些数据不想被修改,可以用元组。
元组写在小括号()里,元素之间用逗号隔开。
虽然元组的元素不可改变,但它可以包含可变的对象,比如list列表。
构造包含0个或1个元素的元组比较特:
嵌套
(作业)购物车
product_list=[
('Mac',9000),
('kindle',800),
('tesla',900000),
('python book',105),
('bike',2000),
]
saving=input('please input your money:')
shopping_car=[]
if saving.isdigit():
saving=int(saving)
while True:
#打印商品内容
for i,v in enumerate(product_list,1):
print(i,'>>>>',v)
#引导用户选择商品
choice=input('选择购买商品编号[退出:q]:')
#验证输入是否合法
if choice.isdigit():
choice=int(choice)
if choice>0 and choice<=len(product_list):
#将用户选择商品通过choice取出来
p_item=product_list[choice-1]
#如果钱够,用本金saving减去该商品价格,并将该商品加入购物车
if p_item[1]<saving:
saving-=p_item[1]
shopping_car.append(p_item)
else:
print('余额不足,还剩%s'%saving)
print(p_item)
else:
print('编码不存在')
elif choice=='q':
print('------------您已经购买如下商品----------------')
#循环遍历购物车里的商品,购物车存放的是已买商品
for i in shopping_car:
print(i)
print('您还剩%s元钱'%saving)
break
else:
print('invalid input')
(9)表达式运用
1、算数运算符:+,-,*,/,//(取整除),%(取余数),**(幂),py中只有小括号
比较运算符:>,<,>=,<=,==,!=,True,False;用来做比较,比较的结果有两种:成立(True)和不成立(False),表示比较后的结果
逻辑运算符:not,and,or;
布尔值:只用真、假两种状态
逻辑运算符遵从短路原则:对于and,如果前面第一个条件为假,那么这个and前后两个条件组成的表达式的计算结果就一定为假,第二个条件不会被计算;
对于or,如果前面第一个条件为真,那么这个or前后两个条件组成的表达式的计算结果就一定为真,第二个条件不会被计算。
2、if...else语句
①if...else
②if...elif...else
③if...elif...elif...else
3、循环loop
有限循环,有次数限制
无限循环=死循环
break(中断,跳出整个当前循环)
continue 结束本次循环,继续下一次循环
①for循环(只能是有限循环)
输出1-100奇数:
# 2 步长
50-70之间不打印:
# 输入用户名--进入--退出
#for三次循环终止
break
continue
②while循环(无限循环)(预习)
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
WHILE循环
调试: