国产人妻人伦精品_欧美一区二区三区图_亚洲欧洲久久_日韩美女av在线免费观看

合肥生活安徽新聞合肥交通合肥房產(chǎn)生活服務(wù)合肥教育合肥招聘合肥旅游文化藝術(shù)合肥美食合肥地圖合肥社保合肥醫(yī)院企業(yè)服務(wù)合肥法律

代做cmsc14100 編程、代寫python編程語言
代做cmsc14100 編程、代寫python編程語言

時(shí)間:2024-10-19  來源:合肥網(wǎng)hfw.cc  作者:hfw.cc 我要糾錯(cuò)



Homework #3
Due: Friday, October 18th at 4:00pm CST
Table of Contents
Homework #3
Getting started
Manual testing
Docstrings
Exercise 1
Representing colors using tuples Exercise 2
Exercise 3
Short-circuiting
A simple lab instrument Exercise 4
Exercise 5
Exercise 6
Exercise 7
Exercise 8
Exercise 9
Grading
Completeness SNU Score
Code Quality
Submission
The purpose of this assignment is to give you experience with conditionals, lists, and loops.
As in HW #2, many of the problems specify requirements related to the constructs that you are allowed to use in your solutions. The purpose of these requirements is to ensure that you get practice with particular programming constructs.
The grader who reviews your assignment will verify that your code follows these restrictions as part of determining your code quality score.
                    
Please note that you will not need to define any new functions to complete these exercises. For all of the tasks, you may assume the parameters have the right types.
Getting started¶
To get started, you will need to pick up the materials for this assignment. The first step is to navigate to your coursework directory:
 $ cd ~/cmsc14100-aut-2024/cs14**coursework-GITHUB_USERNAME
Please recall that the $ represents the prompt and is not included in the command. You also need to replace GITHUB_USERNAME with your GitHub user name.
Use git status to make sure that your local copy of your repository is in a clean state. The output should look like this:
If the output does not match, please review the relevant parts of the Introduction to Git (https://uchicago- cs.github.io/student-resource-guide/tutorials/git-intro.html) tutorial. If you run into trouble, please ask for help.
Once you have cleaned up and your repository is in a good state, run the following command:
 $ git pull upstream main
This command will likely drop you into an unfamiliar editor window with text similar to the following:
If that happens, type :q! (that is, a colon, followed by the letter q , followed by the symbol ! ) and then hit enter.
This command will pull the materials for this assignment into your local copy of your repository and will create a commit.
You will find the files you need in the hw3 directory. The file README.md contains a description of the files in the directory. Please take a minute to review it before you start work on the assignment.
Manual testing¶
     $ git status .
On branch main
Your branch is up to date with 'origin/main'.
     Merge branch 'main' of github.com:uchicago-cmsc14100-aut-2024/coursework-upstream into main
# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
   You should plan to test your code manually in ipython3 .

Run the following at the start of your IPython session to load your code and to set up autoreload so that subsequent changes to the file will be automatically picked up:
If you get an error saying that the import failed, make sure you are running ipython3 from within your hw3 directory.
Make sure you set-up autoreload every time you start-up ipython3 . Docstrings¶
After the first exercise, you will be required to write docstrings for the required functions. A docstring should have:
a brief description of the purpose of the function,
an “Args” section that provides the name, type, and purpose of each input, and
a “Returns” section that provides the type of the return value and a brief description of the return value.
Here is how to write the types that you will use in this assignment, for: an integer, use (int) as the type,
a boolean, use (bool) as the type,
a color tuple use (Tuple[int, int, int]) ,
a list of integers, use (List[int]) , and
a list of color tuples, use (List[Tuple[int, int, int]]) .
We recommend writing the required docstring before you write code for an exercise to solidify your understanding of the purpose of the function, the arguments to the function (including their types), and the return value for the function (including its type).
The grader who reviews your assignment will check your docstrings to ensure that you have included all the required information as part of evaluating the quality of your code. Also, please keep in mind that the 80- character limit on the length of lines applies to your docstrings as well as to your code.
Exercise 1¶
In Homework #2, you wrote a simple function, is_grayscale , to determine whether an RGB color represents a grayscale color (that is, do the red, green, and blue channels of the color have the same value.)
 $ ipython3
In [1]: %load_ext autoreload
In [2]: %autoreload 2
In [3]: import hw3
           
 For this exercise, your task is to write again, this time using a different set of constructs than you used in Homework #2. As a reminder, takes three integer values, r , g , and b , for the red, green, and blue channels of a color and returns True , if all three channels have the same value and False , otherwise.
You may assume that all three parameters hold integer values between 0 and 255 inclusive. Here are some sample uses of this function:
is_grayscale
 is_grayscale
  In [2]: hw3.is_grayscale(255, 255, 255)  # White
Out[2]: True
In [3]: hw3.is_grayscale(160, **, 240)
Out[3]: False
In [4]: hw3.is_grayscale(0, 0, 255)
Out[4]: False
In [5]: hw3.is_grayscale(0, 0, 0)
Out[5]: True
# Purple
# Blue
# Black
Requirements:
You may use conditional statements and the integer equality ( == )/inequality ( != ) operators in your solution
to this task.
You may not use logical operators ( and , or , and not ), nor may you use arithmetic operations ( + , - , etc) in your solution to this task.
Automated Tests
To run the automated tests for this exercise, run the following command at the Linux command-line:
 $ py.test -xvk is_gray
We encourage you to open a second terminal window (connected to your assigned Linux server using SSH) for running py.test . Also, remember to run the tests in your hw3 directory.
Representing colors using tuples¶
In Exercise 1, we represented a color using three integer parameters. We can also represent a color using a tuple with three integers that have values between 0 and 255 inclusive. Here are some sample colors:
For the tasks that use color tuples, you may assume that the tuples are valid. That is, you can assume a tuple for a color has three integers with values that range between 0 and 255 inclusive.
We can give names to the individual values in a tuple using Python’s tuple unpacking mechanism, which allows programmers to specify multiple names, separated by commas, on the left side of an assignment statement and
    In [6]: WHITE = (255, 255, 255)
In [7]: BLACK = (0, 0, 0)
In [8]: BLUE = (0, 0, 255)
In [9]: MEDIUM_GRAY = (127, 127, 127)

 In [10]: r, g, b = (160, **, 240)  # Purple
In [11]: r
Out[11]: 160
In [12]: g
Out[12]: **
In [13]: b
Out[13]: 240
In [14]: r, g, b = BLUE
In [15]: r
Out[15]: 0
In [16]: g
Out[16]: 0
In [17]: b
Out[17]: 255
 is_black_or_white
     0, 0)
 (255, 255, 255)
False
 is_black_or_white
 In [20]: hw3.is_black_or_white(BLACK)
Out[20]: True
In [21]: hw3.is_black_or_white(WHITE)
Out[21]: True
In [22]: hw3.is_black_or_white(MEDIUM_GRAY)
Out[22]: False
In [23]: hw3.is_black_or_white(BLUE)
Out[23]: False
In [24]: hw3.is_black_or_white((160, **, 240))
Out[24]: False
# Purple
an expression that yields a tuple on the right side. Here are some example uses of this mechanism:
Please note when you use tuple unpacking, the number of names on the left side of the assignment statement must equal the number of values in the tuple that is the result of evaluating the right side of the assignment statement. For example, if evaluating the expression on the right side of the assignment statement yields a tuple of length three, then you need to have either one name on the left side of the assignment statement (for the whole tuple) or three names (one per value in the tuple).
We encourage you use this mechanism when you need to work with the components/channels of a color.
Exercise 2¶ Complete the function,
) or white (
Here are some sample uses of
) and
, which takes a color tuple and returns True if the color is black ( (0, , otherwise.
that use the color constants defined above:
  Requirements:
You may use conditional statements, tuple unpacking, and integer equality/inequality operators for this task. You may not use logical operators or equality/inequality on tuples in your solution for this task.
Automated Tests

To run the automated tests for this exercise, run the following command at the Linux command-line: $ py.test -xvk is_black
Exercise 3¶
Complete the function count_not_black_or_white , which takes a list of color tuples, and returns a count of the
number of colors in the list that are neither black nor white.
Here are some sample uses of this function that use the color constants defined above:
    In [25]: hw3.count_not_black_or_white([])
Out[25]: 0
In [26]: hw3.count_not_black_or_white([WHITE])
Out[26]: 0
In [27]: hw3.count_not_black_or_white([BLUE])
Out[27]: 1
In [31]: hw3.count_not_black_or_white([(160, **, 240), (100, 52, 200), (0, 0, 0), (4, 30, 100)])
Out[31]: 3
Restrictions
You may not use logical operators or equality/inequality on tuples in your solution to this task. Do not repeat the code for black_or_white in your solution. Use a function call instead.
See the Code Quality section for hints about how to chose the right looping construct.
Automated Tests
To run the automated tests for this exercise, run the following command at the Linux command-line:
 $ py.test -xvk count
Short-circuiting¶
As we discussed in class, both the logical and and the logical or operators short-circuit. That is, Python stops evaluating the expression as soon as the answer is known. For logical and , Python does not bother to evaluate the second operand if the first operand evaluates to False . For logical or , Python does not bother to evaluate the second operand if the first operand evaluates to True .
This concept extends to loops as well: a loop can short-circuit using break or a return to stop the computation early.
A simple lab instrument¶
The next three problems concern the same simple lab instrument. During a given run, the instrument generates a sequence of integer values. When the machine is working properly the values it generates will fall between specified lower and upper bounds inclusive. The machine signals failures by generating values that fall outside
        
the specified bounds; some failures yield values strictly less that the lower bound and some yield values that are strictly greater than the upper bound.
If lower is 0 and upper is 10, then, for example:
0 is normal,
2 is normal,
10 is normal,
-5 signals a lower failure, 20 signals an upper failure.
In these tasks, you will be writing functions to determine whether failures occur and if so, whether a certain failure (the first or the last) is less than the lower bound or greater than the upper bound.
We have defined the following constants to use as return values:
LOWER signals that the failure of interest is less than the lower bound,
UPPER signals that the failure of interest is greater than the upper bound, and NEITHER signals that no failure occurred.
Exercise 4¶
Exercises 4 and 5 require you to implement the same computation using different constructs. Implementing the same computation twice will give you practice with different mechanisms and will help you see the relationship between the two approaches.
Write a function which_comes_first_break that takes a list of integers generated by our instrument in the order they were generated, the lower bound, and the upper bound and returns:
LOWER , if at least one failure occurred and the first failure has a value strictly less than the lower bound, UPPER , if at least one failure occurred and the first failure has a value strictly greater than the upper bound, NEITHER , if no failures occurred.
As noted above, we have defined constants for LOWER , UPPER , and NEITHER for you to use as the return values for your function.
Here are some sample uses of this function:
               In [34]: hw3.which_comes_first_break([], -10, 10)    # NEITHER
Out[34]: 0
In [35]: hw3.which_comes_first_break([-21], -20, 10)  # LOWER
Out[35]: -1
In [36]: hw3.which_comes_first_break([11], -20, 10)  # UPPER
Out[36]: 1
In [39]: hw3.which_comes_first_break([10, 20, 15, 0, -1, 1, 12, 13, 21], 0, 20) # LOWER
Out[39]: -1

  The first example returns 0 , which is the value of NEITHER , because there are no values in list and thus, no failures in the list.
In the second example, the list contains one value and that value is less than the lower bound, and so the result is -1 , the value of LOWER .
In the third example, the list contains a one value and that value that is greater than the upper bound, and so the result is 1 , the value of UPPER .
In the fourth example, the result is LOWER because the list contains failures ( -1 and 21 ). Since the first failure value ( -1 ) is less than the value specified for the lower bound, the result is LOWER .
In the fifth example, the result is NEITHER because there are no failures: all the values fall between the lower and upper bounds inclusive.
Finally, in the sixth example, the result is UPPER because the list contains failures ( 20 , 0 , and -1 ) and the first failure ( 20 ) is greater than the value specified for the upper bound.
Requirements:
Your function must stop looking values in the list as soon you find a failure value, that is, your function must
short-circuit.
For this exercise, you are required to use break to affect the short-circuiting.
See the Code Quality section for hints about how to chose the right looping construct.
Automated tests
To run the automated tests for this exercise, run the following command at the Linux command-line:
 $ py.test -xvk first_break
Exercise 5¶
Your task is to complete the function which_comes_first_return , which implements the same computation as which_comes_first_break using a different method for accomplishing the short circuiting.
Requirements:
Your function must short-circuit.
For this exercise, you are required to use return to affect the short-circuiting.
See the Code Quality section for hints about how to chose the right looping construct.
              Automated tests
  In [40]: hw3.which_comes_first_break([10, 20, 15, 0, -1, 1, 12, 13, 21], -1, 21) # NEITHER
Out[40]: 0
In [41]: hw3.which_comes_first_break([10, 20, 15, 0, -1, 1, 12, 13], 1, 19) # UPPER
Out[41]: 1
 
To run the automated tests for this exercise, run the following command at the Linux command-line: $ py.test -xvk first_return
Exercise 6¶
Write a function which_comes_last , which takes a list of integers generated by our instrument, the lower bound, and the upper bound and returns:
LOWER , if at least one failure occurred and the last failure was a value strictly less than the lower bound, UPPER , if at least one failure occurred and the last failure was a value strictly greater than the upper bound, NEITHER , if no failures occurred.
Here are some sample uses of this function:
       In [43]: hw3.which_comes_last([], 0, 20)  # NEITHER
Out[43]: 0
In [44]: hw3.which_comes_last([-1], 0, 20)  # LOWER
Out[44]: -1
In [45]: hw3.which_comes_last([21], 0, 20) # UPPER
Out[45]: 1
In [54]: hw3.which_comes_last([10, 20, 15, 0, -1, 1, 12, 13, 21], 0, 20) # UPPER
Out[54]: 1
In [55]: hw3.which_comes_last([10, 20, 15, 0, -1, 1, 12, 13, 21], 0, 25) # LOWER
Out[55]: -1
In [56]: hw3.which_comes_last([10, 20, 15, 0, -1, 1, 12, 13, 21], -10, 25) # NEITHER
Out[56]: 0
Requirements:
See the Code Quality section for hints about how to chose the right looping construct. Automated tests
To run the automated tests for this exercise, run the following command at the Linux command-line:
 $ py.test -xvk last
Exercise 7¶
Complete the function are_all_same , which takes a list of integers and returns True if all the values in the list are the same and False otherwise.
Here are some sample use of this function:
         In [57]: hw3.are_all_same([])
Out[57]: True
In [58]: hw3.are_all_same([1])
Out[58]: True

 Requirements:
Your function must short-circuit. Note that converting the list to a set would violate this restriction.
Automated tests
To run the automated tests for this exercise, run the following command at the Linux command-line:
 $ py.test -xvk same
Exercise 8¶
Complete the function compute_final_score , which takes a list of intermediate scores for a game, a lower bound, an upper bound, and a bonus value and returns a final score. The intermediate scores, the bounds, and the bonus value are all integers. The final score is the sum of the intermediate scores plus, possibly, a bonus value. The bonus value is added to the final score if there are more intermediate scores with values strictly greater than the upper bound than intermediate scores with values that are strictly less than the lower bound.
For example, given the list:
 [5, -5, 8, 9, 11, 5, 12]
and a lower bound of 0 , an upper bound of 10 , and a bonus value of 10 , the result would be 55 . The sum of the seven intermediate scores is: 45 . We add in the bonus value of 10 , because there two intermediate scores– 11 and 12 –greater than 10 and only one intermediate score– -5 – lower than 0 .
Here are some sample uses of this function:
     In [61]: hw3.compute_final_score([], 0, 10, 10)
Out[61]: 0
In [62]: hw3.compute_final_score([-21], -20, 20, 10)
Out[62]: -21
In [63]: hw3.compute_final_score([21], -20, 20, 10)
Out[63]: 31
In [64]: hw3.compute_final_score([-21, 21], -20, 20, 10)
Out[64]: 0
In [65]: hw3.compute_final_score([-21, 21, 22], -20, 20, 10)
Out[65]: **
In [66]: hw3.compute_final_score([-21, 21, -22], -20, 20, 10)
Out[66]: -22
In [67]: hw3.compute_final_score([8, 10], 0, 10, 10)
Out[67]: 18
Requirements:
See the Code Quality section for hints about how to chose the right looping construct.
 In [59]: hw3.are_all_same([1, 1, 1, 1])
Out[59]: True
In [60]: hw3.are_all_same([1, 1, 1, 1, 2])
Out[60]: False
   
Automated tests
To run the automated tests for this exercise, run the following command at the Linux command-line:
 $ py.test -xvk final
Exercise 9¶
Complete the function get_first_bw_idx , which takes a list of color tuples, and returns the index of the first element that is either black or white. The function should return None if neither black nor white occur in the list. The return type for this function can be written as (int | None) .
Here are some sample uses of this function:
     In [69]: hw3.get_first_bw_idx([]) is None
Out[69]: True
In [70]: hw3.get_first_bw_idx([WHITE])
Out[70]: 0
In [72]: hw3.get_first_bw_idx([BLUE, (0, 255, 0), BLUE, BLUE, BLACK, (255, 0, 0), MEDIUM_GRAY, WHITE, BLAC
K])
Out[72]: 4
Requirements:
Your function must short-circuit once it finds the first occurrence of black or white.
Your solution may not repeat the code for determining whether a color tuple is black or white.
Your solution may not use the list in operator or the list index method. (Please note that you may use the required in keyword in a for loop.)
Your solution may not use the range or len functions.
See the Code Quality section for hints about how to chose the right looping construct. Automated tests
To run the automated tests for this exercise, run the following command at the Linux command-line:
 $ py.test -xvk idx
Grading¶
Recall that you will receive two S/N/U scores for this assignment: one for completeness and one for code quality.
Completeness SNU Score¶
Your completeness score will be determined solely on the basis of the automated tests, which provide a measure of how many of the tasks you have completed and the complexity of those tasks.
      
Grade Weighted test score
Satisfactory at least **% Needs Improvement at least 50% Unsatisfactory less than 50%
For example, if your implementation has a weighted test score of 92%, you will earn a S (Satisfactory) score for completeness.
To determine your weighted test score, run the following at the Linux command-line (within your hw3 directory):
or you can run the one line version:
 $ py.test -v; python3 grader.py
Code Quality¶
You are expected to adhere to the class Python Style Guide (https://uchicago-cs.github.io/student-resource- guide/style-guide/python.html#python-style-guide) . The guide covers many parts of Python that are not relevant for this assignment.
Here are some common code quality mistakes that we will be targeting in this assignment. Remember to review the code quality hints from HW #2 as well.
Requirements
Review your code to verify that you followed the requirements/restrictions listed with the questions.
Defined constants
Use the constants defined for LOWER , UPPER , etc instead of the associated integer value. Conditionals
Do not include conditional branches that have no computational effect. Do not write:
 $ py.test -v
$ python3 grader.py
        # Not good
if <some boolean expression>:
x=x+1 else:
x=x+0
or this:
    # Not good
if <some boolean expression>:
x=x+1

  (Recall that we use angle brackets to signal a placeholder. For example, <some boolean expression> should be replaced with an actual boolean expression.)
Write this code instead:
Similarly, do not use pass in the if branch:
Write this code instead:
Don’t use continue in this context either.
Choice of Loop
Make sure to choose the right loop style for your problem.
If you are working with the values in a list, write your code like this:
If you need to do a task that requires both the index and the value of a list element, write code like this:
If you need to do a task that requires both the index and the value of a list element, code like this is usually considered poor style in Python (even though it will feel normal to those of you with Java or C experience):
There is no reason to use a while loop for this assignment. Docstrings
 # Good
if <some boolean expression>:
x=x+1
 # Not good
if <some boolean expression>:
pass else:
x=x+1
 # Good
if not <some boolean expression>:
x=x+1
  # Good
for val in lst:
    <do something with val>
 # Great
for i, val in enumerate(lst):
    <do something with i and val>
 # Not good
for i in range(len(lst)):
    val = lst[i]
    <do something with i and val>
 else: pass
  
Make sure you have provided a complete and accurate docstring for every function. A complete docstring contains a brief description of the purpose of the function, a description of the each input (including its type) and a description of the return value, including its type (assuming the function returns a value).
The two most common mistakes are not writing a docstring at all and writing a docstring that does not include the types of the inputs or the type of the return value.
Overly long or complex code
Avoid writing code that has more cases than needed.
Avoid repeating code
Reuse earlier functions when appropriate. Note that it is OK to use the same loop header multiple times, but not the same loop body.
While these are the main things we care about in this assignment, please remember that it is not possible for us to give you an exhaustive list of every single thing that could affect your code quality score (and that thinking in those terms is generally counterproductive to learning how to program; see our Mistakes are an essential part of learning (https://canvas.uchicago.edu/courses/58316/pages/mistakes-are-an-essential-part-of-learning) page for more details).
Submission¶
Once you have completed the required updates to hw3.py , you must submit your work through Gradescope under Homework #3 (https://www.gradescope.com/courses/841256/assignments/4849836/submissions) . Gradescope will upload your files directly from your GitHub repository, so it is important that you remember to commit and push your work!
(If you have trouble with the link, you can find a link for Gradescope in the list of applications on the left side of our Canvas site. Follow the link and then click on Homework #3.)
Under “Repository”, make sure to select your cmsc14100-aut-2024/cs14**coursework-GITHUB_USERNAME repository. Under “Branch”, select main .
Make sure to check the results of the autograder on Gradescope. If your score is not what you expect, check to make sure you pushed your work to the server! If you pushed your work to the server and the score is still not what you expect, check your code to look for problems that you might have introduced as part of your final code quality check.

        
請(qǐng)加QQ:99515681  郵箱:99515681@qq.com   WX:codinghelp





 

掃一掃在手機(jī)打開當(dāng)前頁
  • 上一篇:&#160;代寫MCEN30017、代做C++,Java程序
  • 下一篇:代寫EF4323、python語言編程代做
  • 無相關(guān)信息
    合肥生活資訊

    合肥圖文信息
    流體仿真外包多少錢_專業(yè)CFD分析代做_友商科技CAE仿真
    流體仿真外包多少錢_專業(yè)CFD分析代做_友商科
    CAE仿真分析代做公司 CFD流體仿真服務(wù) 管路流場仿真外包
    CAE仿真分析代做公司 CFD流體仿真服務(wù) 管路
    流體CFD仿真分析_代做咨詢服務(wù)_Fluent 仿真技術(shù)服務(wù)
    流體CFD仿真分析_代做咨詢服務(wù)_Fluent 仿真
    結(jié)構(gòu)仿真分析服務(wù)_CAE代做咨詢外包_剛強(qiáng)度疲勞振動(dòng)
    結(jié)構(gòu)仿真分析服務(wù)_CAE代做咨詢外包_剛強(qiáng)度疲
    流體cfd仿真分析服務(wù) 7類仿真分析代做服務(wù)40個(gè)行業(yè)
    流體cfd仿真分析服務(wù) 7類仿真分析代做服務(wù)4
    超全面的拼多多電商運(yùn)營技巧,多多開團(tuán)助手,多多出評(píng)軟件徽y1698861
    超全面的拼多多電商運(yùn)營技巧,多多開團(tuán)助手
    CAE有限元仿真分析團(tuán)隊(duì),2026仿真代做咨詢服務(wù)平臺(tái)
    CAE有限元仿真分析團(tuán)隊(duì),2026仿真代做咨詢服
    釘釘簽到打卡位置修改神器,2026怎么修改定位在范圍內(nèi)
    釘釘簽到打卡位置修改神器,2026怎么修改定
  • 短信驗(yàn)證碼 寵物飼養(yǎng) 十大衛(wèi)浴品牌排行 suno 豆包網(wǎng)頁版入口 wps 目錄網(wǎng) 排行網(wǎng)

    關(guān)于我們 | 打賞支持 | 廣告服務(wù) | 聯(lián)系我們 | 網(wǎng)站地圖 | 免責(zé)聲明 | 幫助中心 | 友情鏈接 |

    Copyright © 2025 hfw.cc Inc. All Rights Reserved. 合肥網(wǎng) 版權(quán)所有
    ICP備06013414號(hào)-3 公安備 42010502001045

    国产人妻人伦精品_欧美一区二区三区图_亚洲欧洲久久_日韩美女av在线免费观看
    日本久久久久久久久久久| 国语精品免费视频| 亚洲最大福利视频| dy888夜精品国产专区| 欧美激情久久久久久| 91精品国自产在线观看| 午夜精品久久久内射近拍高清| 91麻豆国产语对白在线观看| 欧日韩在线观看| 久久久久www| 成人精品在线观看| 奇米一区二区三区四区久久| 久久亚洲欧美日韩精品专区| 粉嫩精品一区二区三区在线观看| 国产欧美精品xxxx另类| 亚洲a级在线观看| 亚洲精品第一区二区三区| 国产精品久久成人免费观看| 91精品国产一区| 久久久亚洲国产精品| 欧美精品一区二区三区久久 | 一区二区三区欧美成人| 久久国产手机看片| 国产欧亚日韩视频| 成人av免费看| 114国产精品久久免费观看| 国产mv久久久| 国产精品久久久久久久久久久久冷| 精品中文字幕视频| 日韩在线视频免费观看高清中文| 国产日韩精品综合网站| 日韩中文字幕在线免费| 久久久久久91| 日本午夜在线亚洲.国产| 伊人久久大香线蕉午夜av| 亚洲国产精品久久久久婷婷老年| 久久精品久久精品亚洲人| 久久夜色撩人精品| 性欧美大战久久久久久久| 青青草原一区二区| 国产乱子伦精品| 国产又粗又长又爽视频| 欧美日本韩国一区二区三区| 日韩av免费在线播放| 精品欧美一区免费观看α√| 不卡中文字幕在线| 国产成人久久婷婷精品流白浆| 久章草在线视频| 久久久av免费| 午夜欧美性电影| 国产亚洲欧美另类一区二区三区| 97国产在线视频| 国产精品成人观看视频免费| 色综合666| 国产精品一区二区久久久| 久久国产精品一区二区三区| 伊人久久大香线蕉精品| 免费拍拍拍网站| 精品视频在线观看一区二区| 国产精品12345| 不卡中文字幕av| 青春草国产视频| 91精品黄色| 色综合视频一区中文字幕| 欧美一级大胆视频| 7777精品伊久久久大香线蕉语言| 国产精品久久婷婷六月丁香| 日韩视频专区| 国产精品99久久久久久白浆小说| 91九色视频在线观看| 国产精品-区区久久久狼| 国产精品久久久久久超碰| 日本一本中文字幕| 99精品视频播放| 欧美激情亚洲国产| 国产三级中文字幕| 国产精品九九九| 免费观看国产精品视频| 国产成人啪精品视频免费网 | 亚洲人久久久| 国产日韩精品久久| 久久夜色撩人精品| 黄色国产小视频| 久久久国产影院| 欧美日韩一区二区视频在线观看| 日韩在线视频观看正片免费网站| 日本一区二区高清视频| 国产成人在线小视频| 精品久久久91| 欧美日韩无遮挡| 国产精品视频精品| 欧美午夜视频在线| 日韩在线播放视频| 人妻少妇精品久久| 久久久久久久久久久免费| 国产精品久久久久久久久久东京| 欧美日韩精品一区| 日韩中文字幕在线播放| 欧美中在线观看| 国产精品久久久久秋霞鲁丝| 黄www在线观看| 国产精品大全| 成人精品一区二区三区电影黑人| 亚洲国产精品一区二区第一页| yellow视频在线观看一区二区| 国产99在线免费| 97久久精品国产| 日本久久久a级免费| 久久久成人精品| 国产区亚洲区欧美区| 久99久在线视频| 日韩美女免费观看| 国产成人无码a区在线观看视频| 欧美尤物巨大精品爽| 欧美在线一级视频| 久久中文字幕在线视频| 成人av资源在线播放| 日韩一区免费观看| 久久九九亚洲综合| 国产欧美韩国高清| 日日噜噜噜夜夜爽爽| 国产精品日韩欧美| 成人久久久久久久久| 日韩av高清不卡| 国产精品毛片va一区二区三区| 国产在线观看精品一区二区三区| 亚洲午夜精品国产| 久久久久久久久久久久久久一区| 国产原创精品| 少妇高潮流白浆| 国产精品久久久久av免费| 91免费的视频在线播放| 欧洲精品在线播放| 欧美日韩国产成人| 少妇精69xxtheporn| 国产男女免费视频| 日韩暖暖在线视频| 在线观看福利一区| 国产精品视频500部| 成人h视频在线| 欧美无砖专区免费| 亚洲一区亚洲二区| 国产精品人成电影在线观看| 久久亚洲午夜电影| 国产欧美一区二区三区久久人妖 | 久久久久久久久久久网站| 国产精品一区在线免费观看| 国产精品福利片| 欧美大胆在线视频| 欧美在线观看视频| 亚洲一区免费网站| 久久久久久久国产精品| 国产免费一区二区视频| 国产高清精品一区| 国产麻花豆剧传媒精品mv在线| 人妻无码久久一区二区三区免费 | 国产精品偷伦免费视频观看的| 成人免费xxxxx在线观看| 欧洲精品久久久| 熟女视频一区二区三区| 国产精品第一页在线| 久久久久久久久久国产精品| 成人免费午夜电影| 欧美久久电影| 亚洲国产另类久久久精品极度 | 日韩色妇久久av| 亚洲欧洲精品在线| 精品九九九九| 日韩在线视频免费观看| 国产精品10p综合二区| 国产精品一区av| 国产亚洲福利社区| 国精产品一区一区三区有限在线 | 日本精品一区二区| 午夜精品视频网站| 久久久久久国产精品| 精品国产一区二区三区四区精华| 国产精品无码一本二本三本色| 国产ts人妖一区二区三区| 97免费中文视频在线观看| 国产免费一区二区三区视频| 精品一区2区三区| 欧美成人一区二区在线| 青草网在线观看| 青草青草久热精品视频在线观看| 日本不卡视频在线播放| 日韩av资源在线| 日本不卡在线观看| 欧美一级日本a级v片| 午夜精品短视频| 少妇久久久久久被弄到高潮| 欧美一区二区三区图| 婷婷五月色综合| 日韩av在线综合| 日韩免费av一区二区| 青青草国产精品视频| 欧美精品第三页| 国内精品国产三级国产在线专| 精品一区二区三区自拍图片区| 国产人妻777人伦精品hd|