win7 下同时使用 python2 python3,把python2下的exe文件重命名为 python2.exe 即可。
执行python代码
执行py文件命令:
python d:\test.py
python2 d:\test.py
解决python2输出中文报错问题:
# -*- coding:utf-8 -*-
变量:可变的量
1.必须以数字、字母、下划线任意组,且不能以数字开关。
2.不能使用关键字。
常量:一直不变的量
如:圆周率 【π】
注释:
单行: # 内容
多行:
'''内容'''
"""内容""",如果代码中有单引号''' ,则使用 双引号来注释 """
用户交互:人机对话,只要提到用户交互,我们就会想到 input,注意input输入的都是字符串,即使输入了数字,结果还是字符串类型。
name = input("请输入你的名字:")
age = input("请输入你的年龄:")
print(name,age)
基础数据类型初识
type() # 输出数据类型
print(type(1),type('1'))
结果显示:<class 'int'> <class 'str'>
数字相加:运算
print(1+2)
返回结果:3
字符串相加: 相当于把2个字符串接在一起
name = '小'
name2 = '姐姐'
print(name+name2)
返回结果:小姐姐
字符串乘数字:返回N个字符串
name = '小'
name2 = '姐姐'
print((name+name2)*3)
返回结果:小姐姐小姐姐小姐姐
当字符串为多行时,需要把所有内容引起来,再赋值给其他变量:
var = '''
床前明月光,疑是地上霜。
举头望明月,低头思故乡。
'''
print(var)
返回结果:
床前明月光,疑是地上霜。
举头望明月,低头思故乡。
bool: 布尔值 (真Ture或假False)首字母大写
a = 3
b = 4
print(a>b)
返回False
print(type(True)) --》 <class 'bool'>
IF语句:条件为真,执行结果,否则跳过结果
方法一:只有一种结果,无选择
if 1: # 条件为1 等于 if Ture ,但运行效率最高
print('OK')
方法二:两种选择
a =1
b =2
if a < b :
print('a小于b')
else:
print('a大于b')
多选:
num = int(input('请输入编号:')) #input 默认接收到的为字符串,强制转换成int
if num == 1 : # 如果上面不加int 此处可以写成 num == '1' 把1转换成字符串
print('你选择了1号')
elif num == 2:
print('你选择了2号')
elif num ==3 :
print('你选择了3号')
else:
print('你选择的编号不存在')
判断用户名登录是否正确:(简单版)
name = 'root'
password = 'qwer12345'
na = input('请输入您的用户名:')
passwd = input('请输入您的密码:')
if name == na and password == passwd:
print('登录成功。')
else:
print('用户名或密码错误。')
while 循环
while 条件: # 条件为真,执行下面的循环体
循环体
while 1 : # 条件为真一直执行下去,除非遇到结束条件,否则就死循环了
print('hello')
#continue , pass ,break 只有break能结束此循环
continue 跳出本次循环 , break 中止循环
ps :while 1 比 while true 效率更高,计算机直接识别01代码
使用while 输出 1-100
a=1
while a <=100:
print(a)
a+=1
输出1+到100的和
a=1
sum = 0
while a <=100:
# print(a)
sum += a
a+=1
print(sum)
while else
当while循环没有被break中断才会执行else的内容,如果出现了break则不会执行else的内容
a = 0
while a <=5 :
a += 1
if a == 3:break
print('break中断:',a)
else:
print('while正常结束')
print('---end---')
=========输出结果=======
break中断: 1
break中断: 2
---end---
当a=3时while循环中断,跳出循环体,最后执行最后一条print()
练习题:


1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 # Author: xy 4 #1.使用while循环输出 1 2 3 4 5 6 8 9 10 5 i= 0 6 while i < 10: 7 i=i+1 8 if i==7: 9 continue 10 else: 11 print(i)


1 #2.求1-100的和 2 i =0 3 sum=0 4 while i< 100: 5 i=i+1 6 sum=sum+i 7 print(sum)


1 #3.输出1-100内所有奇数 2 i =0 3 while i< 100: 4 i=i+1 5 if i%2==0: 6 continue 7 else:print(i)


1 #3.输出1-100内所有偶数 2 i =0 3 while i< 100: 4 i=i+1 5 if i%2==0: 6 print(i) 7 else:continue


1 #5.求1-2+3-4+5...99的和 2 i =0 3 sum1=0 4 while i< 100: 5 i=i+1 6 if i%2==0: 7 continue 8 else: 9 sum1=sum1+i 10 j=0 11 sum2=0 12 while j< 100: 13 j=j+1 14 if j%2==0: 15 sum2 = sum2 + j 16 else: 17 continue 18 print(sum1-sum2)


1 #6.用户登录验证(三次机会) 2 user = 'root' 3 password = '123456' 4 i=0 5 while i<3: 6 i=i+1 7 u = input("请输入用户名:") 8 p = input("请输入密码:") 9 if user == u and password == p : 10 print("恭喜你登录成功!") 11 break 12 else: 13 print("用户名或密码输入错误!")
格式化输出
指定一个模板,只要输入对应的内容就可以输出想要的内容,
例:填写一个自己信息的表格,输入姓名、年龄、身高等信息,模板已经打印出来,把自己的信息填写上去就可以输出一张完整的表格了。
#格式化输出
name = input('姓名:')
age = input('年龄:')
height = input('身高:')
tables = '我叫%s,今年%s ,身高%s'%(name,age,height)
print(tables)
=============
#输出结果
姓名:越进
年龄:18
身高:180
我叫越进,今年18 ,身高180
说明:%s
%: 表示占位符,类似给出一个空格给别人填写
s: 数据类型的简写 str (%s) ,也可以使用其它的如 digit (数字) (%d)
t = “我是XXX, 今年XXX 身高XXX ” %(顺序1,顺序2,顺序3) #类似这样
例:使用下面的模板,替换成自己的信息
tables = '''
--------------info of xxx-------------------
Name : xxxx
Age : xx
job :xxxx
Hobbie :xxx
-------------------end-----------------------'''
name = input('姓名:')
age = int(input('年龄:')) #input 默认输出字符,强制转换成Int类型
job = input('工作:')
hobbie = input('爱好:')
tables = '''
--------------info of %s -------------------
Name :%s
Age :%s #%d 数字
job :%s
Hobbie :%s
-------------------end-----------------------'''%(name,name,age,job,hobbie) #1.这里的%号不加s,变量数量对应前面的%s个数; 2.不能换行写
print(tables)
踩坑1: %(name,name,age,job,hobbie) 此处% 后不加s
踩坑2:input() 默认输出为字符
踩坑3:有几个点位符,最后的%() 里就要几个变量,并且按顺序写
提示:如果要输出%使用 %% ,第一个为转意符,第2个%才是直接输出的%
name = input('姓名:')
age = int(input('年龄:'))
work = input('工作进度:')
tables = '''
--------------info of %s -------------------
Name :姓名:%s
Age :年龄:%s
work :工作进度:%s%%
-------------------end-----------------------'''%(name,name,age,work)
print(tables)
=================显示结果==========================
--------------info of xiaoyao -------------------
Name :姓名:xiaoyao
Age :年龄:18
work :工作进度:5%
-------------------end-----------------------
字符编码
运算符
优先级:() > not > and > or
x or y #x为真(非0)后面就不用判断了,直接返回x的值
3>4 or 4<3 and 1==1 #F
1 < 2 and 3 < 4 or 1>2 #T
2 > 1 and 3 < 4 or 4 > 5 and 2 < 1 #T
1 > 2 and 3 < 4 or 4 > 5 and 2 > 1 or 9 < 8 #F
1 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6 #F
not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6 #F
int 转 bool : 非零为True , 零为False
print(bool(2)) # 非零 True
print(bool(-1)) #非零 True
bool 转 int :
print(int(True)) # 1
print(int(False)) # 0
注意:True False 首字母都要大写,否则会报错。
字符串与布尔值 str --> bool
s =”” # 空字符串 --> false
s=”有数据” # 非空 --> true
例:前后端验证用户使用,直接if 返回结果判断是否为空。
数据类型:
int 用于计算
bool 用户判断 True , False
str 字符串,存储少量数据,进去操作
list 列表 [1,2,3,…] 能存储的数据很多
元祖:(1,2,3…) 只读列表,不能修改
dict: 字典 {‘name’:’张三’,’age’:16}
字典{‘张三’:[],’李四’:[1,2,3,5….]}
集合:{1,2,3,’abc’}
i= 2 , i.xxx 调用数字类型的方法 : 变量名.方法名
i =100
print(i.bit_length()) # 输出100(二进制)占位符 1100100 ,结果:7
数据类型转换
int 转换 str
a = 1
s = str(a)
print(type(a),type(s))
=====返回结果=====
<class 'int'> <class 'str'>
str 转换 int (str必须为数字才能转换)
s = '1'
a = int(s)
print(type(a),type(s))
=====返回结果=====
<class 'int'> <class 'str'>
int 转换成 bool (非0都是True , 为0则是False)
a = 1
b = 0
i = bool(a)
j = bool(b)
print('i=',i,',','j=',j)
=====返回结果=====
i= True , j= False
bool 转换成int (True = 1 , False = 0 )
str转换成bool (空字符串 = False , 非空 = True)
例:前后端验证用户时使用,直接if 判断接收到的字符串是否为空
s ='1'
if s :
print('非空') # 判断 s 为非空字符串
else:
print('空') # 判断 s 为空字符串
=====返回结果=====
非空
字符串的索引与切片
索引: 即字符串的下标
s ='abcdefgh' #下标从0开始
s1=s[0]
print(s1) #输出第一个字符a
s1与 s 有区别,两者是不同的字符串。
字符串切片操作:
切片(一次取出多个),顾头不顾尾
s ='abcdefgh'
s1=s[0:4] # 只取第0 1 2 3位
print(s1) #返回结果:abcd
取字符串最后一位, 使用 -1
s ='abcdefgh'
s1=s[-1] #只取最后一位
print(s1) #返回结果:h
取字符串s的总长度:print(len(s)) #len() : 长度 ,中文也是一个字符
取全部字符串
s ='abcdefgh'
s1=s[0:] #方法一
s2=s[:] #方法二
print(s1,s2) #返回结果:abcdefgh abcdefgh
跳着取 s[索引开始:索引结束:步长] #步长不写默认为1
s ='abcdefgh'
s1=s[0:5:2] #步长为2,取出第0 2 4
print(s1) #返回结果:ace
取出结果为:dcba ,从中间切开并倒序取
s ='abcdefgh'
s1=s[3::-1] #倒序取-1 ,原则顾头不顾尾,所以不能写成[3:0:-1]
print(s1) #返回结果:dcba
倒序取出所有值:
s ='abcdefgh'
s1=s[::-1]
print(s1)
字符串操作
查看字符串str 有多少操作方法,按住Ctrl键点击 str即可进入
首字母大写:capitalize()
s ='python'
s1=s.capitalize()
print(s1)
全部变成大写:upper()
s ='python'
s1=s.upper()
print(s1)
全部变成小写:lower()
s ='PYTHON'
s1=s.lower()
print(s1)
验证码对比, 对数字没有影响
s = 'baIB' #验证码
s1 = input("请输入验证码,不区分大小写:") #输入验证码
if s.lower() == s1.lower(): #都转换成小写 也可以使用 s.upper() == s1.upper()
print("验证成功!")
else:
print("验证失败!")
大小写反转:swapcase()
s ='PyThON'
s1=s.swapcase()
print(s1) #返回结果:pYtHon
首字母大写,但中间有特殊字符或者数字: title()
s ='python@llk123qq' #字符串中出现了@ 123
s1=s.title() #首字母,特殊字符、数字出现后的第一个字符变成大写
print(s1) #返回结果:Python@Llk123Qq
居中显示,并可以加填充符号,默认为空格: center(总点位数,’默认空格’)
s ='python'
s1=s.center(20,'@') #共占20个字符指定字符串居中,不足20的使用指定符号@填充
print(s1) #返回结果:@@@@@@@python@@@@@@@
当有制表符\t出现时,自动补8位 expandtabs()
s ='python\tlinux' #字符串中出现转意符
s1=s.expandtabs() #转意
print(s1) #返回结果:python linux
判断一个未知的字符串前2位由什么组成的startswith()
s ='python\tlinux'
s1=s.startswith('py') #判断是否以 py 开头,是返回True, 否返回False
print(s1) #返回结果:True
判断一个未知的字符串前2位由什么组成的endswith()
s ='python\tlinux'
s1=s.endswith('x') #判断是否以 x 结尾,
print(s1) #返回结果:True
公共方法:字符串、数组、元祖都可以使用
学习方法:如何知道方法名的功能
- 直接百度搜索方法名
- 按ctrl键点进去看源码 #英文好的推荐看源码
持续更新中。。。。。。
转载于:https://www.cnblogs.com/csxy-py/p/9252425.html