python-小白入门

学材料的我卓突然想学一门编程语言,肯定推荐python啊,可是自己也是半路出家,只好现学现卖,想一些简单的例子保持她的兴趣,也是给自己一个动力,一起学比自己学动力大多了,还能得到认可,多好……

1.hello world

#!/usr/bin/python 
# -*- coding: UTF-8 -*-
print("xxx jiayou!")

这里,我平时用Linux环境,#!/usr/bin/python 这个是指定python解释器的位置,对于windows环境来说,配置好环境变量后,python会忽略这句指定。

2.输入输出

# -*- coding:UTF-8 -*-

names = ['xxx','yyy']
str = input("请输入一个名字:")
if str in names:
   print(str+"是个好孩子")
else:
   print("我不知道")
print("Bye~")

3.if-else语句和比较运算

# -*- coding: UTF-8 -*-               #这里是指定编码格式如果中文显示为乱码,可能是编解码格式不对
                                      #可以参考http://www.runoob.com/python/python-chinese-encoding.html

print("欢迎进入睡眠监督程序,请输入24小时制整数") 
sleep_length = 0
sleep_time = int(input("几点睡的?"))  #这里把输入的数字记录下来,int()把类型转换为整数
wake_time = int(input("几点醒的?"))

if sleep_time < wake_time:            #转换为数值类型的变量才能比较大小
   sleep_length = wake_time - sleep_time
else:
   sleep_length = 24 - sleep_time + wake_time
print("昨晚的睡眠时长为",sleep_length)

if sleep_length < 7:
   print("睡眠时间太短@_@")
elif sleep_length > 11:
   print("睡这么久?#_#")
else:
   print("睡眠时间合格")

4.for语句和格式输出(九九乘法表)

# -*- coding:utf-8 -*-

print("**********九九乘法表**********")

for i in range(1,10,1):                            #range()是一个函数,(1,10,1)表示从1到10,步长为1
    for j in range(1,i+1,1):
        print('%d * %d = %d'%(i,j,i*j),end='\t')   #%d表示整数的占位,python会把后面的i,j,i*j这三个数依次放进三个%d的位置
                                                   #'\t'是制表符,跟空格差不多的意思
    print('\n')                                    #'\n'是换行符,表示一个换行

5. while循环和随机数生成

# -*- coding:utf-8 -*-

import random           #引入random 模块

print("告别选择困难症之今天想吃什么&_&")

breakfast = ['包子+粥','油条+豆浆','鸡蛋+豆腐脑','馅饼+酸奶','面包+牛奶','煎饼+果汁','蒸饺+豆奶']
lunch = ['盖饭','汤面','炒面','炒饭','土豆粉','米线','麻辣烫','黄焖鸡','汉堡','麻辣香锅','鸡公煲','卤肉饭','排骨饭','炸鸡','石锅拌饭','牛肉粉','小面','水饺','咖喱饭']
dinner = ['盖饭','汤面','炒面','炒饭','土豆粉','米线','麻辣烫','黄焖鸡','汉堡','鸡公煲','卤肉饭','排骨饭','石锅拌饭','牛肉粉','小面','水饺','咖喱饭','馄炖']
fruit = ['香蕉','草莓','苹果','橘子','菠萝','西瓜','芒果','火龙果','小番茄','柚子','橙子','哈密瓜']

choice = int(input("就餐类型:1.早餐 2.午餐 3.晚餐 4.水果 请输入编号: >>"))
flag = 'no'             #while循环的判断标志
while flag != 'ok':
    if 1 == choice:
        print(breakfast[random.randint(0,len(breakfast)-1)])    #使用random 模块的randint()函数来生成随机数
    elif 2 == choice:
        print(lunch[random.randint(0,len(lunch)-1)])
    elif 3 == choice:
        print(dinner[random.randint(0,len(dinner)-1)])
    elif 4 == choice:
        print(fruit[random.randint(0,len(fruit)-1)])
    else:
        print("请输入正确类型选项编号")
        choice = int(input("就餐类型:1.早餐 2.午餐 3.晚餐 4.水果 请输入编号: >>"))
        continue                                                #continue 语句跳出本次循环,继续执行下次循环
    flag = input("吃这个可以吗?输入ok 或者no >>")

print("今天又是好好吃饭的一天,棒!Enjoy food")

6. 双层循环和字符连接

# -*- coding:UTF-8 -*-
  2 print("******程序员之-my heart Will Go On******")
  3 print('\n')
  4 char = 'secret'
  5 allChar = []                       #这个列表用来存放所有字符
  6 for y in range(12, -12, -1):       #y的范围,即高度
  7     lst = []                       #这个变量用来存放每行的字符串
  8     lst_con = ''                   #这个变量用来存放当前行字符串
  9     for x in range(-30, 30):       #x的范围,即宽度
 10         formula = ((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3      #心形曲线公式(x^2+y^2-1)^3-x^2*y^3=0
 11         if formula <= 0:
 12            lst_con += char[(x) % len(char)]                #心形内部放字符
 13         else:
 14            lst_con += ' '          #心形外部放空格
 15     lst.append(lst_con)            #放入当前行
 16     allChar += lst                 #加入到所有字符列表中
 17 print('\n'.join(allChar))          #join()函数连接列表中所有字符串,输出

7. 斐波那契数列,循环和格式输出

# -*- coding:UTF-8 -*-

print("斐波那契数列")  #F0 = 0     (n=0)
                       #F1 = 1     (n=1)
                       #Fn = F[n-1]+ F[n-2](n=>2)

n = int(input("你想看数列前几项?"))

one = 0
two = 1

if 1 <= n:       #第一项
   print('第1项是:%d' % (one))
if 2 <= n:       #第二项
   print('第2项是:%d' %(two))

for i in range(3,n+1):    #之后的每一项都等于前两项相加
    result = one + two
    print('第%d项是:%d' % (i,result))
    tmp = two
    two = one + two
    one = tmp

8. 回文之翻转字符串的两种方法,参考:http://baijiahao.baidu.com/s?id=1579943450505225770&wfr=spider&for=pc

# -*- coding:UTF-8 -*-

print("----------回文----------")

print("*《四时四首 春》 伯山*")
a = ['锦如花色春残饮','楼上正人愁','晏天横阵雁','思远寄情词']

for i in range(0,len(a)):
    print(a[i]+","+''.join(reversed(a[i]))+"。")       #resersed()函数翻转序列,并不改变序列本身,join()连接翻转后字符
                                                       #reverse()可以原地反转列表中元素,元组和字符串都是不可变对象,所以都不能用

print("*************************")
str = input("请输入一句话:")
while not str:
   str = intput("不能为空,重新输入:")
print(str+"<=>"+str[::-1])                             #切片[<start>:<end>:<step>],start默认值是0,end默认值是len(seq),step默认值是1。步长为-1代表反向切片(从右向左每次前进1步)

9. 递归函数与汉诺塔,参考:https://www.cnblogs.com/zhouzhishuai/p/8470607.html

# -*- coding:UTF-8 -*
print("学习汉诺塔") #汉诺塔是什么:https://baike.baidu.com/item/%E6%B1%89%E8%AF%BA%E5%A1%94/3468295?fr=aladdin
                        #如果有n个盘子,需要挪动的次数为2^n-1
n = int(input("请输入汉诺塔层数:"))
i = 0                   #i定义为全局变量,用来计数
def move(n,a,b,c):      #这是一个函数,将a塔的盘子经由b塔挪到c塔
   global i             #声明这里的i是刚才定义的那个全局变量i
   if(n==1):            #只有一个盘子,直接挪
      i += 1
      print('第',i,'次移动',a,'-->',c)
   else:
      move(n-1,a,c,b)   #先把a塔上的n-1个盘子经由c塔挪到b塔
      move(1,a,b,c)     #再把a塔上剩下的1个盘子挪到c塔
      move(n-1,b,a,c)   #把b塔上的n-1个盘子挪到c塔

move(n,'A','B','C')     #调用刚才写的move()函数

猜你喜欢

转载自blog.csdn.net/Li_suhuan/article/details/88792331