一些豆知识
- ‘.调用操作’和用函数的区别:
e.g. : s = ‘123456’, s.后面出现的一些可选操作针对该数据类型,而像len(s)函数这样的针对不止s的数据类型,所以s.length会报错
- 新学的一些操作:
- sum()
求和
- len()
求长度
- 取指定长度的字符串:
s = '123456'
k = 2
print(s[k:])
print(s[:k])
结果:3456
12
- split():
s = '123456'
k = 2
print(s.split(s[2]))
结果:['12', '456'] #注意指定位置的那个字符会没了
- rang()
> range(9,0,-1)
结果:
9
8
7
6
5
4
3
2
1
一些例题
- 百钱买百鸡 :
money = int(input('请输入您的预算:'))
num = int(input('请输入您打算购买的数量:'))
i = money // 3
j = money // 1
n = money * 2
x = 0
count = 0
for cock in range(1,i+1) :
for hen in range(1,j+1) :
for chick in range(1,n+1) :
count += 1
if cock*3 + hen*1 + chick/2 == money and cock + hen + chick == num :
print(f'您可以分别购买{cock}只公鸡,{hen}只母鸡,{chick}只小鸡\n')
x +=1
print(f'共计{x}种方案')
print(f'运算次数:{count})
print('')
结果 :
请输入您的预算:20
请输入您打算购买的数量:20
您可以分别购买1只公鸡,15只母鸡,4只小鸡
您可以分别购买2只公鸡,10只母鸡,8只小鸡
您可以分别购买3只公鸡,5只母鸡,12只小鸡
共计3种方案
运算次数:4800
# 百钱买百鸡优化
money = int(input('请输入您的预算:'))
num = int(input('请输入您打算购买的数量:'))
i = money // 3
j = money // 1
n = money * 2
x = 0
count = 0
for cock in range(1,i+1) :
for hen in range(1,j+1) :
count += 1
chick = 100 - hen -cock
if cock*3 + hen*1 + chick/2 == money and cock + hen + chick == num :
print(f'您可以分别购买{cock}只公鸡,{hen}只母鸡,{chick}只小鸡\n')
x +=1
print(f'共计{x}种方案')
print(f'运算次数:{count}')
print('')
结果 :
请输入您的预算:20
请输入您打算购买的数量:20
共计0种方案
运算次数:120
- 模拟登陆:
for i in range(0,3) :
name = input('请输入用户名:')
password = int(input('请输入密码(仅支持数字):'))
if name in ['新职课', '师徒制']:
if password == 5211314:
print('登录成功')
break
else:
print('登录失败')
print('')
if i == 2 :
print('失败次数过多,请稍后再试')
- 斐波那锲:
n = int(input('请输入N:'))
f0 = 0
f1 =1
if n == 0 :
print('0')
else:
if n == 1 :
print('1')
else:
m = 1
c = 0
print(0)
print(1)
for i in range(2, n):
f = m + c
print(f)
c = m
m = f
- 数字组合
#打印1,2,3,4能组成的所有三位数
i = 0
for hunred in range(1,5) :
for decade in range(1,5) :
for single in range(1,5) :
print(f'{hunred*100+decade*10+single*1}')
i+=1
print(f'共计{i}个数')
print('')
#打印1,2,3,4能组成的互不相同且无重复三位数
i = 0
for hunred in range(1,5) :
for decade in range(1,5) :
for single in range(1,5) :
if hunred is decade or hunred is single or decade is single :
continue
else:
print(f'{hunred * 100 + decade * 10 + single * 1}')
i += 1
print(f'共计{i}个数')
print('')
- 乘法表
for r in range(1,10) :
for j in range(1,r+1) :
print(f'{j}*{r}={r*j}',end=' ')
print('')
print('\n')
for r in range(1,10) :
for j in range(r,10) :
print(f'{j}*{r}={r*j}',end=' ')
print('')
- 左旋转字符串:
#简单方法:
def r(s,k) :
if 1 <= k < len(s) <= 10000:
return s[k:] + s[:k]
else:
print('字符串过长')
s = input('请输入要左旋转的字符串:')
k = int(input('请输入要左旋转的位数:'))
print(r(s, k))
print('')
#小白方法:
def r(f1,k) :
m = ''
n = ''
for i in range(k, len(f1)):
m = m + f1[i]
for j in range(0, k):
n = n + f1[j]
return m+n
f1 = input('请输入要左旋转的字符串:')
k = int(input('请输入要左旋转的位数:'))
print(r(f1, k))
print('')
- 求前n项和
def sumNums(n):
if n in range(1,10001) :
return sum(range(1, n + 1))
n = int(input('请输入n :'))
print(sumNums(n))
print('')