===> 传送门: python基础环境配置
counts = 0
while counts < 100:
print(f"我是循环的第{counts + 1}次")
counts += 1
print("循环结束!")
java基础是
猜字符游戏
这里就猜数字
guess_counts = 0
guess_num = random.randint(1, 100)
print(f"提前透露一下结果:{guess_num}")
while True:
guess_input = int(input("请输入猜的数字\n"))
guess_counts += 1
if guess_num > guess_input:
print(f"猜小了,现在是猜的第 {guess_counts}次, 重猜!")
if guess_num < guess_input:
print(f"猜大了,现在是猜的第 {guess_counts}次, 重猜!")
if guess_num == guess_input:
break
print(f"猜对了,结果就是{guess_num}, 总共: {guess_counts}次")
嵌套循环 循环次数 是 外侧*内侧
数量
# 写一个9*9乘法表吧
a = 1
while a <= 9:
b = 1
while b <= a:
print(f"{b}*{a}={a * b} \t", end='')
b += 1
a += 1
print("")
in 后面放处理数据(
序列类型
,字符串
,裂变
,元组
)
str1 = "zhang_san"
for x in str1:
print(x)
count = 0
test = "zhang_san is a good boy"
for i in test:
if i == "o":
count += 1
print(f"o重复了: {count}次")
range(num)
解释: 0到num-1的数字序列[0,1,2,…,num-1]
range(num1,num2)
解释: [num1,num+1,…,num2-1]
range(num1,num2,step)
解释: [num1,num1+step,num1+step+step,…,num2-1] 默认加一变加2
# 输出0-9
for i in range(10):
print(i)
# 输出5-9
for i in range(5, 10):
print(i)
# 输出5,8
for i in range(5, 10, 3):
print(i)
临时变量的作用域( python是
警告
java 直接编译报错
)
规范写法 (临时变量 不要直接操作)
下面是标准
写法
a = 0
for a in range(5):
print(a)
print(a)
答案是:
51
个偶数
even_counts = 0
for i in range(101):
if i % 2 == 0:
even_counts += 1
print(f"偶数的数量是: {even_counts}个")
for循环中加入for循环
print("循环开始-----------------------> ")
for a in range(1, 10):
for b in range(1, a + 1):
print(f"{b} * {a} = {a * b} \t", end="")
print("")
print("循环结束-----------------------> ")
continue和 break (很简单 不测试了)
continue 表示当前层循环跳过, 后面变量继续执行 影响一次
break 表示当前层 循环结束 直接返回上一层了 影响一层
def 函数名(传入参数):
函数体
return 返回值
封装了公共操作行为, 代码更加简洁
, 调用更方便
(封装思想)
nums1 = "123"
# 改造上面方法 返回总数和 (形式参数用,分割)
# def new_sum(nums1,num2):
def new_sum(nums):
sum_total = 0
for num1 in nums:
sum_total += int(num1)
return sum_total
# 返回是数字 输出数字
print(new_sum(nums1)) # 传入实际参数
[与java有不同 java 是真没返回值 void]
python中的无返回值-> 准确来说是无return关键字
是有返回值
的, 返回值是None
- None的字面量(类型NoneType)
- None值 与java的 null 意思一样 但是在if判断中
可以表示False
def test02(num):
"""
函数的文档注释: 大于2 返回yes字符串 其他返回None(if里是布尔类型)
:param num: 传入数字
:return: None/字符串
"""
if num > 2:
return "YES"
else:
return None
test2 = test02(3)
if test2:
print(f"大于2: {test2}")
if not test2: # None 直接可以表示False
print("大于2: 不成立")
def fun_b():
print("---B---")
fun_c()
def fun_a():
print("---A---")
fun_b()
def fun_c():
print("---C---")
fun_a() # A->B->C 方法
局部变量
不可直接使用# 局部变量
# def fun_test01():
# a1 = 20
#
#
# print(a1) # 直接报错 局部变量 不可使用
global
关键字全局变量(函数外面定义)
- global关键字声明的变量就是全局变量
- 任意位置修改
- 全局变量都会变化
局部变量(解释,按照地址角度)
- 局部变量的内存,是在栈内存中的
- 函数入栈后,存入函数局部变量的地址
- 就算名字相同 与 全局变量的地址指向的也不是同一个
a1 = 100
# 不会对全局变量产生影响
def fun_test01():
a1 = 20 # 局部变量 任何操作都不会对全局造成影响 换句话说 不是一个变量
print(f"{a1}")
def fun_test02():
global a1
a1 += 20
print(f"{a1}")
fun_test01()
print(a1)
fun_test02()
print(a1)
- 一共一万元奖金 20人发(编号1-20)
- 每个人都有绩效 (随机1-10) 低于5 不发
- 其余正常 发了输出
奖池剩余金额
奖池金额发没了
直接结束- 最后整体提示: 奖金发完了,下个月领取
import random
salary_sum_money = 10000
salary_per_money = 1000
for person_num in range(1, 21):
if salary_sum_money <= 0:
print(f"!!! 员工编号:{person_num}以及之后的编号,奖金发没了,下个月领取!")
break
performance_score = random.randint(1, 10)
if performance_score < 5:
print(f"员工编号:{person_num},您的绩效分数是: {performance_score}, 很抱歉没有奖金")
continue
salary_sum_money -= salary_per_money
print(f"员工编号: {person_num},您的绩效分数是: {performance_score}分,"
f"已发放: {salary_per_money}元,剩余奖金: {salary_sum_money}元")
print(f"本次奖金发放结束, 剩余奖金金额: {salary_sum_money}元")
多测几次, 看看执行结果
注意: 一个细节 奖金发放完毕的if逻辑
最好写<=, 不要写= (来自java代码的经验
)
员工编号: 1 ,您的绩效分数是: 7分 ,已发放: 1000元 ,剩余奖金: 9000元
员工编号: 2 ,您的绩效分数是: 9分 ,已发放: 1000元 ,剩余奖金: 8000元
员工编号:3 ,您的绩效分数是: 2 , 很抱歉没有奖金
员工编号: 4 ,您的绩效分数是: 10分 ,已发放: 1000元 ,剩余奖金: 7000元
员工编号: 5 ,您的绩效分数是: 7分 ,已发放: 1000元 ,剩余奖金: 6000元
员工编号:6 ,您的绩效分数是: 3 , 很抱歉没有奖金
员工编号:7 ,您的绩效分数是: 2 , 很抱歉没有奖金
员工编号:8 ,您的绩效分数是: 4 , 很抱歉没有奖金
员工编号: 9 ,您的绩效分数是: 8分 ,已发放: 1000元 ,剩余奖金: 5000元
员工编号:10 ,您的绩效分数是: 3 , 很抱歉没有奖金
员工编号:11 ,您的绩效分数是: 4 , 很抱歉没有奖金
员工编号:12 ,您的绩效分数是: 3 , 很抱歉没有奖金
员工编号: 13 ,您的绩效分数是: 10分 ,已发放: 1000元 ,剩余奖金: 4000元
员工编号: 14 ,您的绩效分数是: 8分 ,已发放: 1000元 ,剩余奖金: 3000元
员工编号: 15 ,您的绩效分数是: 6分 ,已发放: 1000元 ,剩余奖金: 2000元
员工编号: 16 ,您的绩效分数是: 7分 ,已发放: 1000元 ,剩余奖金: 1000元
员工编号:17 ,您的绩效分数是: 1 , 很抱歉没有奖金
员工编号: 18 ,您的绩效分数是: 10分 ,已发放: 1000元 ,剩余奖金: 0元
!!! 员工编号:19 以及之后的编号,奖金发没了,下个月领取!
本次奖金发放结束, 剩余奖金金额: 0元
===> 传送门: ATM 存钱 取钱 查询余额 (python版)案例
- 全局变量与局部变量的使用
- for循环与while 循环的使用
- 函数定义位置 从上到下
- 关键字global使用
- range()方法使用
- 返回值 return 与 None
- 案例中的细节使用
数据容器
- 列表 (java的list[
不太一样
])- 元组 (java的 final 数组[
不太一样
])- 字符串 (java的byte[][
类似
])- 集合 (java的set集合[
类似
])- 字典 (java的map 写法就是json写法[
基本类似
])数据容器的api操作
- 增删改查(
对数据容器的
) , 不是mysql
的