初步认识
Python语法与C#语法出入较大,C#相对而言更为复杂,Python更为简洁。
Python的注释符号是“#”,打印输出是“Print()”。
声明变量不需要在变量前面声明变量类型的,后续结束也不需要添加“;”。
字符串类型的只需单引号即可。如下
a = '10'
print('a的值为: ' + a)
需要注意的是Python不能整型和字符串一同输出,否则会报错。
数值介绍
在Python数值中分为三种:整数、浮点数、复数,在python中所有的整数都是int类型,所有的小数都是float类型。
b = 10
print(b)
c = 1.23
print(c)
# 对浮点数进行运算时,会得到一个不精确的结果
d = 0.1 + 0.2
print(d)
# 进制数限制
# 二进制(0b开头)
e = 0b10
# 八进制(0o开头)
e = 0o10
# 十进制(非零开头)
e = 10
# 十六进制(0x开头)
e = 0x10
print(e)
字符串(str)注意事项
1、相同引号不能套用
f1 = '今天是个"坏天气"!'
print(f1)
2、三重引号可以表示一个长字符串,可以换行,输出时也可以保留字符串中的格式
f2 = '''Python,
C#,
JAVA,
C'''
print(f2)
3、转义字符
# \' 表示',\" 表示",\t 表示制表符,\n 表示换行符,\\ 表示反斜杠
f3 = "他说:\"学Python真有趣!\""
print(f3)
4、占位符
# %s 在字符串中表示任意字符、%f 浮点数占位符、%d 整数占位符
f4 = 'Python %s C# %s' % ('比', '更简洁')
print(f4)
f5 = '我的存款: %.2f' % 10000.123
print(f5)
f6 = '你们的存款: %d' % 100000.95
print(f6)
f7 = f'hello {a} {b}'
print(f7)
布尔类型
布尔值实际上也属于整型,True就相当于1,False就相当于0。
注意:Python中True和False首字母必须大写。
g = True
g += 1
print(g) # 打印的是2
g = False
g += 1
print(g) # 打印的是1
类型检查
# int\float\bool\str\NoneType
print(type(1))
print(type(0.1))
print(type(True))
print(type('hello'))
print(type(None))
类型转换
# bool转换成int
j1 = True
j2 = False
j = int(j1)
j = int(j2)
print(j)
# str转换成int
j3 = '123'
j = int(j3)
print(j)
# int转换成str
j4 = 123
j = str(j4)
print(j)
# int转换成float
j5 = 123
j = float(j5)
print(j)
# None转换成bool
j6 = None
j = bool(j6)
print(type(j))
算术运算符
加减乘除用法一致,仅补充以下内容:
# // 整除,只会保留计算后的整数位,总会返回一个整型
z1 = 5
z1 //= 2
print(z1)
# ** 幂运算,求一个值的几次幂
z2 = 2 ** 2
z2 = 10 ** 5
z2 = 16 ** 0.5 # 求16的平方根
print(z2)
# % 取模,求两个数相除的余数
z3 = 10 % 5 # 打印输出0
z3 = 10 % 4 # 打印输出2
z3 = 10 % 2 # 打印输出0
print(z3)
还有赋值运算符/关系运算符/逻辑运算符/条件运算符/运算符优先级,很简单,不做记录。
条件判断语句
Python中“或与非”对应的分别是“or\and\not”。
# 字符串类型
strTest = input('请问您今天学习了吗?')
if strTest == '学习了':
print('那您再继续努力努力,坚持下去!')
elif strTest == '还没有':
print('学习是进步的阶梯,赶紧行动起来吧!')
else:
print('对不起,无法识别您的回答,请重新输入!')
# 整数类型
intTest = int(input('请任意输入一个1-100以内的正整数:'))
number = intTest
if 0 < number < 100:
print('您输入的正整数是:')
print(number)
else:
print('输入错误,请重新输入!')
循环语句
while和for,下面举3个例子
# 1、求100以内所有的奇数之和
i = 0
result = 0
while i < 100:
i += 1
if i % 2 != 0:
result += i
print('100以内所有奇数之和')
print('总和为:', result)
print()
# 2、求1000以内水仙花数
i = 100
print('1000以内的水仙花数分别是:')
while i < 1000:
# 求百位
a = i // 100
# 求十位
b = (i - a * 100) // 10
# 求个位
c = i % 10
if a ** 3 + b ** 3 + c ** 3 == i:
print(i)
i += 1
# 3、求最大公约数和最小公倍数
print('请输入两个数字')
number1 = int(input('Num1: '))
number2 = int(input('Num2: '))
# 找出两个num中最小的
min_number = min(number1, number2)
for i in range(1, min_number + 1):
if number1 % i == 0 and number2 % i == 0:
max_commer = i
min_commer = int(number1 * number2)/max_commer
print('%s 和 %s的最大公约数为%s' % (number1, number2, max_commer))
print('%s 和 %s 的最小公倍数为%s' % (number1, number2, min_commer))
循环嵌套
以打印图形为例
# *递增
i = 0
while i < 5:
j = 0
while j < i + 1:
print("* ", end='')
j += 1
print()
i += 1
# *递减
i = 5
while i > 1:
j = 0
while j <= i - 1:
print("* ", end='')
j += 1
print()
i -= 1
print()
# 倒三角
for i in range(4):
for y in range(i, 7-i):
print(" * ", end='')
print()
for j in range(0, i+1):
print(" ", end="")
print()
# 99乘法表
i = 0
while i < 9:
i += 1
j = 0
while j < i:
j += 1
print(f"{j}*{i}*{i*j} ", end="")
print()
循环中的break和continue用法一致,不做记录
程序优化部分
# time模块,用来统计程序执行的时间
from time import *
# 记录开启时间
begin = time()
i = 2
while i <= 100000:
if i % j == 0:
flag = False
break
j += 1
if float:
pass
i += 1
# 获取程序结束的时间
end = time()
# 计算程序执行时间
print("程序执行花费了:", end - begin, "秒")
Part 1 总结
用一个小游戏概述
# 《贫民斗地主》
print('-'*20, '欢迎光临《贫民斗地主——贫民翻身篇》', '-'*20)
# 选择身份
print('请选择你的身份:')
print('\t1.贫民')
print('\t2.地主')
player_choose = input('请选择[1/2]:')
print('-'*88)
if player_choose == '1' or player_choose == '贫民':
print('你已经选择了1.贫民,你将以<-贫民->的身份来进行游戏!')
elif player_choose == '2' or player_choose == '地主':
print('你竟然选择地主?!不好意思这里是贫民翻身篇,你将以<-贫民->的身份来进行游戏!')
else:
print('输入有误,系统将为你自动分配身份,你将以<-贫民->的身份来进行游戏!')
# 进入游戏
player_farmernum = 1 # 贫民人数
player_farmermoney = 1000 # 资产/元
landowner_num = 10 # 地主势力
landowner_money = 10000 # 资产/元
print('-'*88)
print(f'贫民,你目前的公关团队人数是 {player_farmernum} , 你目前的资产是 {player_farmermoney}')
while True:
# 打印一条分割线
print('-'*88)
# 显示游戏选项,游戏正式开始
print('请选择你要进行的操作:')
print('\t1.公关团队')
print('\t2.批斗地主')
print('\t3.单挑地主')
game_choose = input('请选择要做的操作[1-3]:')
# 处理用户的选择
if game_choose == '1':
# 增加公关人数
player_farmernum += 1
player_farmermoney += 1000
# 显示最新的信息
# 打印一条分割线
print('-'*88)
# 显示玩家的信息(攻击力、生命值)
print(f'恭喜你找到新成员!,你目前的团队人数是 {player_farmernum} , 你目前的资产是 {player_farmermoney}')
elif game_choose == '2':
# 贫民批斗地主
# 削弱地主的势力,削弱的势力应该等于贫民公关团队总人数
landowner_num -= player_farmernum
landowner_money -= player_farmermoney
# 打印一条分割线
print('-'*88)
print('<-贫民-> 批斗了 <-地主->')
# 检查地主是否破产
if landowner_num < player_farmernum and landowner_money <= 0:
# 地主破产,贫民胜利,游戏结束
print(f'<-地主->-受到了 {player_farmermoney} 的罚款,破产了,<-贫民->-赢得了胜利!')
# 游戏结束
break
# 地主要反击贫民
# 减去贫民的资金
player_farmermoney -= landowner_money
print(' <-地主-> 反击了 <-贫民->')
# 检查贫民是否输光money
if player_farmermoney <= 0:
# 贫民输光money
print(f'你批斗失败了,需要赔偿地主 {landowner_money} 元,你的资产输得一毛不剩!GAME OVER')
# 游戏结束
break
elif game_choose == '3':
# 打印一条分割线
print('-'*88)
# 单挑地主,游戏当场结束
print('<-贫民->单枪匹马斗地主,底裤都输没了!GAME OVER')
break
else:
# 打印一条分割线
print('-'*88)
print('你的输入有误,请重新输入!')
本章内容均为学习记录。