1. 第一个程序:helloworld
Windows python交互器实现:
Linux python交互器实现:
./hello.py 要加可执行权限
chmod +x hello.py
./hello.py运行发现提示语法错误,原因:没有告诉系统用什么语法实现
Pycharm实现:
print ("hello world") ###3.0写法
print"hello world" ###2.7写法
运行测试:
2.变量与赋值
案例1:
分析:从中可以看出name和“=”之间可以有空格,也可以没有空格。
分析:这样写报语法错误,从中可以看出表示一个字符串需要加引号。
分析:这样写报变量AndyH没有被赋值,从中可以看出AndyH被作为一个变量来看待。
案例2:
分析:从中可以看出2.x和3.x的print区别,其中2.7兼容2.x和3.x的命令。
分析:
查看a,b内存地址
分析:可以看出a和b储存在内存里的值发生了变化。
变量起名规则:
1.显示,通俗易懂
2.nums_of_aliex_gf
3.NumsOfAliexGf 驼峰写法。
4.数字不能开头,可以在中间或者结尾,如na5me。
5.特殊字符不能有,如!@¥。除#以外,表示单行注释。
6.不能有空格。
7.关键字不能声明为变量名,如and,as,assert,break等。
错误示范:
1. .name-of-aliex-gf 编程语言中的“-”代表减号
2. 5name
3. name of teacher
4. print
6. !name
3.用户交互
案例1:
分析2.0和3.0的input变量区别
4.条件判断与缩进
4.1 IF...ELSE条件语句
案例1:
运行会报错,缩进错误,同一级别的缩进要保持一致
python通过缩进来判断作用域,所以强制缩进,官方推荐缩进4格,pycharm中按Tab默认就是缩进4格。
案例2:猜luckynumber
假设lucky number =6
・猜的数字比6大,提示说你打印小一点
・猜的数字比6小,提示说你打印大一点
・猜的数字等于6,提示binggo
2.x写法:
lcynum = 6 ###给lucky number赋值
input_num = input ("inputlucky number:") ###定义输入内容变量,3.0需要加int
if input_num == lcynum: ###如果输入值等于lcynum
print ("bingo") ###则打印binggo
elif input_num > lcynum: ###如果输入值大于lcynum
print ("pleaseprint smaller") ###则打印please print smaller
else: ###否则其他情况(也就是小于lcynum)
print ("pleaseprint bigger") ###则打印please print bigger
3.x写法,注意int函数:
lcynum = 6 ###给lucky number赋值
input_num = int(input ("inputlucky number:")) ###定义输入内容变量,3.0需要加int
if input_num == lcynum: ###如果输入值等于lcynum
print ("bingo") ###则打印binggo
elif input_num > lcynum: ###如果输入值大于lcynum
print ("pleaseprint smaller") ###则打印please print smaller
else: ###否则其他情况(也就是小于lcynum)
print ("pleaseprint bigger") ###则打印please print bigger
运行结果
小于6情况:
大于6:
等于6:
5.循环控制
案例1:猜lucky number扩展:无限次数限制,输出一次重新再提示输入
5.1 while 循环语句
lcynum = 6 ###给lucky number赋值
whileTrue: ###循环语句
input_num= int(input ("input lucky number:")) ###定义输入内容变量,3.0需要加int
if input_num == lcynum: ###如果输入值等于lcynum
print("bingo") ###则打印binggo
elif input_num > lcynum: ###如果输入值大于lcynum
print("please printsmaller") ###则打印please print smaller
else: ###否则其他情况(也就是小于lcynum)
print("please printbigger") ###则打印please print bigger
运行结果:无限循环输入
案例2:无限循环,当输入正确结果之后,结束循环,break
运行结果:输入正确结果之后停止循环
案例3:不使用True
lcynum = 6 ###给lucky number赋值
while input_num != lcynum: ###循环语句,当input_num不等于lcymum的时候循环
input_num = int(input ("inputlucky number:")) ###定义输入内容变量,3.0需要加int
if input_num == lcynum: ###如果输入值等于lcynum
print ("bingo") ###则打印binggo
elif input_num > lcynum: ###如果输入值大于lcynum
print ("pleaseprint smaller") ###则打印please print smaller
else: ###否则其他情况(也就是小于lcynum)
print ("pleaseprint bigger") ###则打印please print bigger
运行结果:
报错,input_num没有被定义。
分析:虽然下面已经定义了input_num,但还是报错,说明python是从上往下执行的,所以第一次出现的input_num变量没有声明。所以可以先给它定义一个初始值。
修改如下:
lcynum = 6 ###给lucky number赋值
input_num = -1 ###定义一个初始值
while input_num != lcynum: ###循环语句,当input_num不等于lcymum的时候循环
input_num = int(input ("inputlucky number:")) ###定义输入内容变量,3.0需要加int
if input_num == lcynum: ###如果输入值等于lcynum
print ("bingo") ###则打印binggo
elif input_num > lcynum: ###如果输入值大于lcynum
print ("pleaseprint smaller") ###则打印please print smaller
else: ###否则其他情况(也就是小于lcynum)
print ("pleaseprint bigger") ###则打印please print bigger
运行结果:
案例4:优化脚本,下图标识部分表示变量已经判断了两次,重复判断了,继续优化
修改如下:
lcynum = 6 ###给lucky number赋值
input_num = -1 ###定义一个初始值
while input_num != lcynum: ###循环语句,当input_num不等于lcymum的时候循环
input_num = int(input ("inputlucky number:")) ###定义输入内容变量,3.0需要加int
#if input_num == lcynum: ###如果输入值等于lcynum
#print ("bingo") ###则打印binggo
if input_num > lcynum: ###如果输入值大于lcynum
print ("pleaseprint smaller") ###则打印please print smaller
#else: ###否则其他情况(也就是小于lcynum)
elif input_num < lcynum: ###如果输入值小于lcynum
print ("pleaseprint bigger") ###则打印please print bigger
print ("bingo")
验证结果:
案例5:lucky number次数限制,3次猜不中结束或者猜中结束
lcynum = 6 ###给lucky number赋值
input_num = -1 ###定义一个初始值
guess_count = 0 ###定义猜测次数的初始值
while guess_count <3:
input_num = int(input ("inputlucky number:")) ###定义输入内容变量,3.0需要加int
if input_num > lcynum: ###如果输入值大于lcynum
print ("pleaseprint smaller") ###则打印please print smaller
elif input_num < lcynum: ###如果输入值小于lcynum
print ("pleaseprint bigger") ###则打印please print bigger
else:
print ("bingo")
break
guess_count += 1 ###每循环一次+1,和上面语法实现效果一致
else: ####当上面的条件不满足(即循环结束)
print ("toomany retrys !")
测试结果:
5.2 for循环语句
lcynum = 6 ###给lucky number赋值
input_num = -1 ###定义一个初始值
for i in range(3):
input_num = int(input ("inputlucky number:")) ###定义输入内容变量,3.0需要加int
if input_num > lcynum: ###如果输入值大于lcynum
print ("pleaseprint smaller") ###则打印please print smaller
elif input_num < lcynum: ###如果输入值小于lcynum
print ("pleaseprint bigger") ###则打印please print bigger
else:
print ("bingo")
break
else: ####当上面的条件不满足(即循环结束)
print ("toomany retrys !")
6.常用数据类型
字符串格式化
案例1:“+”串联字符串
name = input("name:")
age = input("age:")
job = input("job:")
print("Infomationof []:" + name + "\nName:[]" +name +"\nAge:[]"+ age + "\nJob:[]" +job)
运行结果:
案例2:"%"运用
name = input("name:")
age = input("age:")
job = input("job:")
print("Informationof []:" + name + "\nName:[]"+name +"\nAge:[]" + age + "\nJob:[]" +job)
print("Informationof %s:\nName:%s\nAge:%s\nJob:%s" %(name,name,age,job))
运行结果:
案例3:"""or '''运用(一般都用''')
name = input("name:")
age = input("age:")
job = input("job:")
msg = '''
Information of %s
Name:%s
Age:%s
Job:%s
''' %(name,name,age,job)
print (msg)
测试结果:
注意:除了%s之外还有%d和%f,
%d代表数字
%#f代表浮点
案例4:strip应用
name = input("name:").strip()
age = input("age:")
job = input("job:").strip()
msg = '''
Information of %s
Name:%s
Age:%s
Job:%s
''' %(name,name,age,job)
print (msg)
测试结果:
案例5:
name = input("name:").strip()
age = int(input("age:"))
job = input("job:").strip()
msg = '''
Information of %s
Name:%s
Age:%s
Job:%s
''' %(name,name,age,job)
print (msg)
测试结果:发现加了int语句后,age空格也自动去掉了,不需要strip
案例6:strip去关键字符
name = input("name:").strip("T")
age = int(input("age:"))
job = input("job:").strip()
msg = '''
Information of %s
Name:%s
Age:%s
Job:%s
''' %(name,name,age,job)
print (msg)
测试结果:去掉了T
7. 列表常用操作
作用:在一个变量里存多个信息
索引
切片
追加
删除
长度
循环
包含
dir(name_list)
8.元组
t = (1,2,3,4)
dir(t)
只有count、index功能
把列表和元组转换
8.文件操作
file obj = file("文件路径","模式") ###3.0没有file
file obj = open(“file”,"模式")