python学习笔记(一) 序列、条件、循环、字典

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/Charonmomo/article/details/97616067

一、序列

在这里插入图片描述

(一)字符串

定义字符串单双引号都可以。

例子:根据年份计算生肖。

chinese_zodiac = '鸡猴狗猪鼠牛虎兔龙蛇马羊' 
year=2019
print(chinese_zodiac[year%12])    

在这里插入图片描述
字符串其他操作:

print(chinese_zodiac[0]) #访问第0个元素
print(chinese_zodiac[0:4]) #访问第0到4个元素
print(chinese_zodiac[-1]) #倒着访问第1个元素

在这里插入图片描述
在这里插入图片描述

print('狗'in chinese_zodiac)
print('狗' not in chinese_zodiac)

print(chinese_zodiac+chinese_zodiac) //连接两个字符串
print(chinese_zodiac+'abcd')

print(chinese_zodiac*3)  #字符串重复三遍

在这里插入图片描述

(二)元组

例子:根据生日判断星座。

思路:将(2,15)与zodic_days中保存的元组比较,找到(2,15)小于zodic_days中元组的个数,此处为2,将2对应到zodic_name中为“水瓶座”。

zodic_name = (u'摩羯座',u'水瓶座',u'双鱼座',u'白羊座',u'金牛座',u'双子座',u'巨蟹座',u'狮子座',u'处女座',u'天秤座',u'天蝎座',u'射手座')
zodic_days = ((1,20),(2,19),(3,21),(4,21),(5,21),(6,22),(7,23),(8,23),(9,23),(10,23),(11,23),(12,23))

(month,day) = (2,15) #用户输入的生日

zodic_day = filter(lambda x:x <= (month,day),zodic_days)
zodic_len = len(list(zodic_day))

print(zodic_name[zodic_len])

在这里插入图片描述

代码讲解:
1.zodic_name中的u表示Unicode,标志星座,防止出现乱码。

2.希望月份和日期能够同时存储,用到的是元组的功能,(1,20)即一个元组。将这些元组放在一起再加一个括号,就组成了一个新的元组,即元组嵌套。

3.关于元组的比较:
在这里插入图片描述4.filter函数
在这里插入图片描述

(三)列表

列表与元组的区别是:
列表使用中括号,元组使用小括号;
列表中存储的元素是可变更的,元组中存储的元素是不可变更的。

a_list = ['abc','xyz']
a_list.append('N')  #列表增加元素
print(a_list)

a_list.remove('abc') #列表中删除元素
print(a_list)

在这里插入图片描述

二、条件语句

在这里插入图片描述

x = 22
if x==20:
    print('x==20')
elif x<20:
    print('x<20')
else:
    print('x>20')

在这里插入图片描述例子:根据用户输入的年份输出生肖。

chinese_zodiac = '鸡猴狗猪鼠牛虎兔龙蛇马羊'
year = int(input('请输入出生年份:')) #inpu函数接收用户输入,int强制转换类型
if chinese_zodiac[year % 12] == '猪':
    print('猪年运势:………………')

在这里插入图片描述

三、循环语句

在这里插入图片描述

(一)for循环

使用for语句遍历字符串:

chinese_zodiac = '鸡猴狗猪鼠牛虎兔龙蛇马羊'
for cz in chinese_zodiac:
    print(cz)

在这里插入图片描述
for的其他用法:
借助range函数:可以接收一个或两个参数

for i in range(13):    #输出13个元素,即输出0——12
    print(i)

在这里插入图片描述

for i in range(1,13):  #输出1——12
    print(i)

在这里插入图片描述例子:输出某年的生肖。

chinese_zodiac = '鸡猴狗猪鼠牛虎兔龙蛇马羊'

for year in range(2000,2020):
    print('%s 年的生肖是 %s' %(year, chinese_zodiac[year%12]))

在这里插入图片描述

(二)while循环

num=5
while True:
    print(num)
    num = num+1
    if num > 10:
        break   #跳出循环

在这里插入图片描述

import time
num=5
while True:

    num = num+1
    if num == 10:
        continue   #跳出当前循环

    print(num)
    time.sleep(1)  #输出一个值后,让程序先暂停一下

在这里插入图片描述

(三)for循环中的if嵌套

例子:根据用户输入的月份和日期判断星座。

zodic_name = (u'摩羯座',u'水瓶座',u'双鱼座',u'白羊座',u'金牛座',u'双子座',u'巨蟹座',u'狮子座',u'处女座',u'天秤座',u'天蝎座',u'射手座')
zodic_days = ((1,20),(2,19),(3,21),(4,21),(5,21),(6,22),(7,23),(8,23),(9,23),(10,23),(11,23),(12,23))

int_month = int(input('month:'))
int_day = int(input('day:'))

for user_date in range(len(zodic_days)):
    if  zodic_days[user_date] >=  (int_month,int_day):
        print(zodic_name[user_date])
        break

    elif int_month == 12 and int_day > 23:
        print(zodic_name[0])
        break

在这里插入图片描述

(四)while循环中的if嵌套

例子:根据用户输入的月份和日期判断星座。

代码1:

zodic_name = (u'摩羯座',u'水瓶座',u'双鱼座',u'白羊座',u'金牛座',u'双子座',u'巨蟹座',u'狮子座',u'处女座',u'天秤座',u'天蝎座',u'射手座')
zodic_days = ((1,20),(2,19),(3,21),(4,21),(5,21),(6,22),(7,23),(8,23),(9,23),(10,23),(11,23),(12,23))

int_month = int(input('month:'))
int_day = int(input('day:'))

n=0
while n in range(len(zodic_days)):
    if (int_month,int_day) < zodic_days[0]:
        print(zodic_name[n])
    else:
        n += 1

在这里插入图片描述
代码2:

zodic_name = (u'摩羯座',u'水瓶座',u'双鱼座',u'白羊座',u'金牛座',u'双子座',u'巨蟹座',u'狮子座',u'处女座',u'天秤座',u'天蝎座',u'射手座')
zodic_days = ((1,20),(2,19),(3,21),(4,21),(5,21),(6,22),(7,23),(8,23),(9,23),(10,23),(11,23),(12,23))

int_month = int(input('month:'))
int_day = int(input('day:'))
n=0
while (int_month,int_day) >= zodic_days[n]:
    if int_month ==12 and int_day > 23:
        break
    n+=1

print(zodic_name[n])

在这里插入图片描述

四、字典的定义和操作

在这里插入图片描述字典的定义

dict2 = {'x':1,'y':2}

字典元素的增加:

dict2 = {'x':1,'y':2}
dict2['z']=3
print(dict2)

实例:用字典统计用户输入的生肖和星座。

chinese_zodiac = '鸡猴狗猪鼠牛虎兔龙蛇马羊'

zodic_name = (u'摩羯座',u'水瓶座',u'双鱼座',u'白羊座',u'金牛座',u'双子座',u'巨蟹座',u'狮子座',u'处女座',u'天秤座',u'天蝎座',u'射手座')
zodic_days = ((1,20),(2,19),(3,21),(4,21),(5,21),(6,22),(7,23),(8,23),(9,23),(10,23),(11,23),(12,23))

#定义生肖和星座的字典
cz_num = {}
for i in chinese_zodiac:
    cz_num[i] = 0

z_num = {}
for i in zodic_name:
    z_num[i] = 0

while True:
    # 用户输入
    int_year = int(input('year:'))
    int_month = int(input('month:'))
    int_day = int(input('day:'))

    # 输出星座
    n = 0
    while (int_month, int_day) >= zodic_days[n]:
        if int_month == 12 and int_day > 23:
            break
        n += 1

    print(zodic_name[n])

    # 输出生肖
    print('%s 年的生肖是 %s' % (int_year, chinese_zodiac[int_year % 12]))

    # 用字典统计用户输入信息
    cz_num[chinese_zodiac[int_year%12]] += 1
    z_num[zodic_name[n]] +=1

    # 输出生肖和星座的统计信息
    for each_key in cz_num.keys():
        print('生肖 %s 有%d 个' % (each_key, cz_num[each_key]))

    for each_key in z_num.keys():
        print('星座 %s 有 %d 个' % (each_key, z_num[each_key]))

在这里插入图片描述

五、列表推导式与字典推导式

(一)列表推导式

#从1到10,所有偶数的平方

#未使用推导式
alist = []
for i in range(1,11):
    if(i%2==0):
        alist.append(i*i)

print(alist)

#使用推导式
blist = [i*i for i in range(1,11) if i%2==0]
print(blist)

在这里插入图片描述

(二)字典推导式

zodic_name = (u'摩羯座',u'水瓶座',u'双鱼座',u'白羊座',u'金牛座',u'双子座',u'巨蟹座',u'狮子座',u'处女座',u'天秤座',u'天蝎座',u'射手座')

#非推导式
z_num = {}
for i in zodic_name:
    z_num[i] = 0

print(z_num)

#推导式
z1_num = {i:0 for i in zodic_name}
print(z1_num)

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Charonmomo/article/details/97616067
今日推荐