python小白之路:第二章python流程控制

一些豆知识

  • ‘.调用操作’和用函数的区别:

e.g. : s = ‘123456’, s.后面出现的一些可选操作针对该数据类型,而像len(s)函数这样的针对不止s的数据类型,所以s.length会报错

  • 新学的一些操作:
  1. sum()

    求和

  2. len()

    求长度

  3. 取指定长度的字符串:
	   s = '123456'
       k = 2
       print(s[k:])
       print(s[:k])
       结果:3456
             12  
  1. split():
 	   s = '123456'
       k = 2
       print(s.split(s[2]))
       结果:['12', '456'] #注意指定位置的那个字符会没了
  1. 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('')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值