python学习
1、注释
01 单行:#
02 多行:""" “”" 三引号 快捷键:按住shift,点击两次双引号键
03 选中内容后加注释 ctrl+/
2、变量
01 变量名由数字,字母下划线组成,数字不能开头
02 变量名一般用小写字母+下划线组成
3、格式化输出
占位符:占位,位置上数据的类型
%s string
%d digit
%f float
%% 输出百分号
例:
name=‘司马狗剩’
age=18
salary=100.98
print(‘他的名字是%s,他的年龄是%d,他的工资是%.2f’%(name,age,salary))
print(‘游戏胜率:%d%%’ %87)
4、input函数
5、类型转换
left_num=input('请输入第一个数字:')
right_num=input('请输入第二个数字:')
result=left_num+right_num
print(type(left_num),type(right_num))
print(result)
显示:
请输入第一个数字:666
请输入第二个数字:888
666888
left_num=input('请输入第一个数字:')
right_num=input('请输入第二个数字:')
left_num_int=int(left_num)
right_num_int=int(right_num)
result=left_num_int+right_num_int
print(type(left_num_int),type(right_num_int))
print('%d + %d 的结果是 %d '%(left_num_int, right_num_int, result))
显示:
请输入第一个数字:666
请输入第二个数字:888
<class 'int'> <class 'int'>
666 + 888 的结果是 1554
6、BUG
6.1导致程序崩溃,终止运行
6.1.1语法错误
6.1.2对语法理解不到位
6.1.3手误
7、if 语句
例:
#获得用户输入的用户名
user_name=input('请输入你的用户名:')
#正确的用户名
correct_name='admin'
#判断
if user_name==correct_name:
print('欢迎%s登陆系统!' % user_name)
else:
print('登陆失败,哈哈哈哈哈')
例:
a=10
b=20
ret=a>b and a or b
print(ret)
显示:20
8、分数案例
score=int(input('请输入你的分数:'))
if score>90 and score<=100:
print('你太棒了')
elif score>80 and score<=90:
print('优秀!')
elif score>70 and score<=80:
print('良好')
elif score>60 and score<=70:
print('及格')
elif score>100 or score<0:
print('输入错误')
else:
print('你完了')
第二种方法为好
score=int(input('请输入你的分数:'))
if score>=0 and score<=100:
if score>90 and score<=100:
print('你太棒了')
elif score>80 and score<=90:
print('优秀!')
elif score>70 and score<=80:
print('良好')
elif score>60 and score<=70:
print('及格')
else:
print('你完了')
else:
print('输入有误!')
9、练习
#猜拳游戏
import random
user_quan=int(input('请输入 石头(0),剪刀(1),布(2):')) #不要忘记加int
computer_quan=random.randint(0,2)
print(computer_quan)
if (user_quan==0 and computer_quan==1)or
(user_quan==1 and computer_quan==2) or
(user_quan==2 and computer_quan==0):
print('恭喜,你赢了!')
elif user_quan==computer_quan:
print('平局')
else:
print('你输咯,哈哈哈哈')
#打印1-100数字
i=1
while i<=100:
print(i)
i=i+1
#打印1-100奇数
i=1
while i<=100:
if i%2 !=0:
print(i)
i=i+2
#打印1-100偶数
i=1
while i<=100:
if i%2 ==0:
print(i)
i=i+1
#打印1-100的和
i=1
total=0
while i<=100:
total=total+i
i=i+1
print(total)
#打印1-100的奇数和
i=1
total=0
while i<=100:
if i%2!=0:
total=total+i
i=i+1
print(total)
#打印星星
# print('*'*1)
# print('*'*2)
# print('*'*3)
# print('*'*4)
# print('*'*5)
i=1
while i<=5:
print('*' * i)
i=i+1
#打印1-100的和,跳过50
i=1
total=0
while i<=100:
if i==50:
i=i+1
continue
total=total+i
i=i+1
print(total)
10、函数
def my_add(a,b):
ret = a + b
print(ret)
my_add(10,20)
11、使用调试模式你
01、先加断点
02、启动调试模式
12、函数的返回值
def my_add(a,b):
ret = a + b
return ret
#保存函数返回的结果
a=my_add(10,20)
my_final=a+100
print(my_final)
函数的返回值有没有,需要由编写的函数功能决定
13、函数强化练习
#编写一个函数用于计算start到end结束之间所有数的累加和
def leijiahe(start,end):
i=start
my_sum=0
while i<=end:
my_sum=my_sum+i
i+=1
return (my_sum)
ret=leijiahe(10,15)
print('ret:',ret)
#编写一个函数根据传入的运算符,进行相应的加减乘除运算符计算
def my_caculater(left,right,fuhao):
a=left
b=right
if fuhao=='+':
ret = a + b
elif fuhao=='-':
ret=a-b
elif fuhao=='*':
ret=a*b
elif fuhao=='/':
ret=a/b
else:
print('您输入法的操作符有误!')
ret=None
return (ret)
ret=my_caculater(10,20,'#')
print(ret)
14、return 关键字
14.1函数中可以出现多个return,但是有且只有一个会被执行
14.2return 后面不跟值,return单独使用,等价于return None
15、默认参数
我们在给函数形参设置默认参数时,并不会给所有参数设置默认值
注意点:如果某一位置形参设置了默认参数,那么该位置之后的所有参数都应该设置默认参数
16、局部变量和全局变量
局部变量:在函数内部定义的变量,只能在函数内部使用
全局变量:在函数外部定义的变量,全局都能使用
17、容器
分为序列容器和非序列容器
序列容器:字符串、列表、元组
非序列容器:字典、
18、字符串遍历
遍历:不重复的访问容器中的每一个元素
索引:索引支持正数索引,也支持负数索引
my_str=‘hello’
print(my_str[4]) #4时索引,下标
print(my_str[-1])
#while 循环遍历
my_str='hello'
i=0
while i < 5 :
print(my_str[i],end=' ')
i+=1
for循环遍历
my_str='hello'
for v in my_str:
print(v,end=' ')
19、字符串替换
#replace并不会替换原本的字符串,替换完毕之后返回一个新的字符串
poetry='远看泰山黑乎乎,上头细来下头粗,汝把泰山倒过来,下头细来上头粗,汝'
new_poetry=poetry.replace('汝','如',1)
print(poetry)
print(new_poetry)
20、字符串容器特点
20.1字符串一旦被定义不允许修改修改
20.2字符串容器中元素都是字符串类型
21、查找子字符串
user_email='simagousheng@itcast.cn'
#如果查找到,返回子串第一次出现的位置
#如果查找不到 @ ,返回-1
position=user_email.find('@')
if position==-1:
print('邮箱不合法!')
else:
print('@的位置是:',position)
21、字符串切片
起始值不写表示从0开始,结束值不写表示一直到结束,两个都不写表示:从开始到结束
#字符串提供了一种语法,用来获取字符串中的一个子串
user_email='simagousheng@itcast.cn'
print(user_email[0])
#切片语法:左闭右开
print(user_email[0:4]) # #等价于 print(user_email[:4])
#获得容器元素的个数
string_length=len(user_email)
print(user_email[13:string_length]) #等价于 print(user_email[13:])
print(user_email[:])
print(user_email[0:12:3]) #第三个值代表步长
22、邮箱案例
position=user_email.find('@')
if position==-1:
print('邮箱不合法!')
else:
print('用户名是:',user_email[:position])
print('邮箱是:',user_email[position+1:])
23、邮箱案例方式二
split 拆分
user_email='simagousheng@itcast.cn'
char_count=user_email.count('@')
#获得@字符串在user_name中出现的次数
if char_count>1:
print('你的邮箱输入不合法!')
else:
ret=user_email.split('@')
print('用户名是:',ret[0])
print('用户名是:',ret[1])
24、去除两侧空格
username =input('请输入你的用户名:')
#strip函数默认去除字符串两侧空格
new_username=username.strip()
print(new_username)
# isalpha 判断字符串中所有元素是否都是字母
if new_username.isalpha(): # .isdigit 判断是否是数字
print('恭喜你,注册成功')
else:
print('注册失败!')